region: Simplify size code for input chooser dialog
The previous code was complex and caused the dialog to abruptly change size when interacting with it. Instead choose a reasonable default height.
This commit is contained in:
parent
70d8427b04
commit
aaee85e5c6
2 changed files with 1 additions and 34 deletions
|
@ -35,7 +35,6 @@
|
||||||
#define INPUT_SOURCE_TYPE_XKB "xkb"
|
#define INPUT_SOURCE_TYPE_XKB "xkb"
|
||||||
#define INPUT_SOURCE_TYPE_IBUS "ibus"
|
#define INPUT_SOURCE_TYPE_IBUS "ibus"
|
||||||
|
|
||||||
#define MAIN_WINDOW_WIDTH_RATIO 0.60
|
|
||||||
#define FILTER_TIMEOUT 150 /* ms */
|
#define FILTER_TIMEOUT 150 /* ms */
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -282,29 +281,6 @@ remove_all_children (GtkContainer *container)
|
||||||
gtk_container_remove (container, (GtkWidget *) l->data);
|
gtk_container_remove (container, (GtkWidget *) l->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
set_fixed_size (GtkWidget *chooser)
|
|
||||||
{
|
|
||||||
CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GtkPolicyType policy;
|
|
||||||
gint width, height;
|
|
||||||
|
|
||||||
gtk_scrolled_window_get_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow), &policy, NULL);
|
|
||||||
if (policy == GTK_POLICY_AUTOMATIC)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Don't let it automatically get wider than the main CC window nor
|
|
||||||
get taller than the initial height */
|
|
||||||
gtk_window_get_size (gtk_window_get_transient_for (GTK_WINDOW (chooser)),
|
|
||||||
&width, NULL);
|
|
||||||
gtk_window_get_size (GTK_WINDOW (chooser), NULL, &height);
|
|
||||||
gtk_widget_set_size_request (chooser, width * MAIN_WINDOW_WIDTH_RATIO, height);
|
|
||||||
|
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
|
|
||||||
GTK_POLICY_AUTOMATIC,
|
|
||||||
GTK_POLICY_AUTOMATIC);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_input_source_rows_for_locale (GtkWidget *chooser,
|
add_input_source_rows_for_locale (GtkWidget *chooser,
|
||||||
LocaleInfo *info)
|
LocaleInfo *info)
|
||||||
|
@ -332,8 +308,6 @@ show_input_sources_for_locale (GtkWidget *chooser,
|
||||||
{
|
{
|
||||||
CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
|
CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
|
||||||
|
|
||||||
set_fixed_size (chooser);
|
|
||||||
|
|
||||||
remove_all_children (GTK_CONTAINER (priv->list));
|
remove_all_children (GTK_CONTAINER (priv->list));
|
||||||
|
|
||||||
if (!info->back_row)
|
if (!info->back_row)
|
||||||
|
@ -609,8 +583,6 @@ show_more (GtkWidget *chooser)
|
||||||
{
|
{
|
||||||
CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
|
CcInputChooserPrivate *priv = GET_PRIVATE (chooser);
|
||||||
|
|
||||||
set_fixed_size (chooser);
|
|
||||||
|
|
||||||
gtk_widget_show (priv->filter_entry);
|
gtk_widget_show (priv->filter_entry);
|
||||||
gtk_widget_grab_focus (priv->filter_entry);
|
gtk_widget_grab_focus (priv->filter_entry);
|
||||||
|
|
||||||
|
@ -1029,7 +1001,6 @@ cc_input_chooser_new (GtkWindow *main_window,
|
||||||
g_autoptr(GtkBuilder) builder = NULL;
|
g_autoptr(GtkBuilder) builder = NULL;
|
||||||
GtkWidget *chooser;
|
GtkWidget *chooser;
|
||||||
CcInputChooserPrivate *priv;
|
CcInputChooserPrivate *priv;
|
||||||
gint width, height;
|
|
||||||
g_autoptr(GError) error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
builder = gtk_builder_new ();
|
builder = gtk_builder_new ();
|
||||||
|
@ -1074,11 +1045,6 @@ cc_input_chooser_new (GtkWindow *main_window,
|
||||||
#endif /* HAVE_IBUS */
|
#endif /* HAVE_IBUS */
|
||||||
show_locale_rows (chooser);
|
show_locale_rows (chooser);
|
||||||
|
|
||||||
/* Try to come up with a sensible size */
|
|
||||||
gtk_window_get_size (main_window, &width, &height);
|
|
||||||
gtk_widget_set_size_request (chooser, width * MAIN_WINDOW_WIDTH_RATIO, -1);
|
|
||||||
gtk_window_set_resizable (GTK_WINDOW (chooser), TRUE);
|
|
||||||
|
|
||||||
gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window);
|
gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window);
|
||||||
|
|
||||||
return chooser;
|
return chooser;
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
<property name="margin-end">6</property>
|
<property name="margin-end">6</property>
|
||||||
<property name="margin-top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin-bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
|
<property name="min-content-height">300</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkViewport" id="viewport">
|
<object class="GtkViewport" id="viewport">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue