aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/misc/ChangeLog7
-rw-r--r--widgets/misc/e-search-bar.c27
2 files changed, 31 insertions, 3 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog
index ccd2c1828c..112d6d3aec 100644
--- a/widgets/misc/ChangeLog
+++ b/widgets/misc/ChangeLog
@@ -1,5 +1,12 @@
2001-01-28 Ettore Perazzoli <ettore@ximian.com>
+ * e-search-bar.c (add_spacer): Make the spacer 4 pixels wider.
+ (add_dropdown): Put the dropdown button into an event box with a
+ 1-pixel border, so that we match the [Hardcoded! Stupid GTK+!]
+ border around the option menu.
+
+2001-01-28 Ettore Perazzoli <ettore@ximian.com>
+
* e-dropdown-button.c (menu_deactivate_cb): New function to change
the state of the toggle button when the pop-up menu disappears.
(impl_clicked): Removed.
diff --git a/widgets/misc/e-search-bar.c b/widgets/misc/e-search-bar.c
index 39730c7aa6..4c49f76d55 100644
--- a/widgets/misc/e-search-bar.c
+++ b/widgets/misc/e-search-bar.c
@@ -106,6 +106,7 @@ add_dropdown (ESearchBar *esb,
ESearchBarItem *items)
{
GtkWidget *menu;
+ GtkWidget *event_box;
int i;
menu = gtk_menu_new ();
@@ -131,13 +132,23 @@ add_dropdown (ESearchBar *esb,
GTK_WIDGET_UNSET_FLAGS (esb->dropdown, GTK_CAN_FOCUS);
gtk_widget_show (esb->dropdown);
- gtk_box_pack_start(GTK_BOX(esb), esb->dropdown, FALSE, FALSE, 0);
+ /* So, GtkOptionMenu is stupid; it adds a 1-pixel-wide empty border
+ around the button for no reason. So we add a 1-pixel-wide border
+ around the button as well, by using an event box. */
+ event_box = gtk_event_box_new ();
+ gtk_container_set_border_width (GTK_CONTAINER (event_box), 1);
+ gtk_container_add (GTK_CONTAINER (event_box), esb->dropdown);
+ gtk_widget_show (event_box);
+
+ gtk_box_pack_start(GTK_BOX(esb), event_box, FALSE, FALSE, 0);
}
static void
add_option(ESearchBar *esb, ESearchBarItem *items)
{
GtkWidget *menu;
+ GtkRequisition dropdown_requisition;
+ GtkRequisition option_requisition;
int i;
esb->option = gtk_option_menu_new();
@@ -167,6 +178,15 @@ add_option(ESearchBar *esb, ESearchBarItem *items)
gtk_option_menu_set_history (GTK_OPTION_MENU (esb->option), 0);
gtk_widget_set_sensitive (esb->option, TRUE);
+
+ /* Set the minimum height of this widget to that of the dropdown
+ button, for a better look. */
+ g_assert (esb->dropdown != NULL);
+
+ gtk_widget_size_request (esb->dropdown, &dropdown_requisition);
+ gtk_widget_size_request (esb->option, &option_requisition);
+
+ gtk_container_set_border_width (GTK_CONTAINER (esb->dropdown), GTK_CONTAINER (esb->option)->border_width);
}
static void
@@ -187,7 +207,8 @@ add_spacer (ESearchBar *esb)
spacer = gtk_drawing_area_new();
gtk_widget_show(spacer);
gtk_box_pack_start(GTK_BOX(esb), spacer, FALSE, FALSE, 0);
- gtk_widget_set_usize(spacer, 15, 1);
+
+ gtk_widget_set_usize(spacer, 19, 1);
}
@@ -303,7 +324,7 @@ e_search_bar_construct (ESearchBar *search_bar,
g_return_if_fail (menu_items != NULL);
g_return_if_fail (option_items != NULL);
- gtk_box_set_spacing(GTK_BOX (search_bar), 1);
+ gtk_box_set_spacing (GTK_BOX (search_bar), 1);
add_dropdown (search_bar, menu_items);