2007-07-14 [colin] 2.10.0cvs21
authorColin Leroy <colin@colino.net>
Sat, 14 Jul 2007 09:26:03 +0000 (09:26 +0000)
committerColin Leroy <colin@colino.net>
Sat, 14 Jul 2007 09:26:03 +0000 (09:26 +0000)
* src/toolbar.c
Fix huge arrows
Fix button workaround to be able to click
if mouse was on button when it went un-
sensitive.
Revert previous commit, gtk_tool_item_set_homogeneous
doesn't mean what it seems to mean ;-)

ChangeLog
PATCHSETS
configure.ac
src/toolbar.c

index 37ecaedb7abcd24beeccb279d74c6665e782c9bc..e598aef5162f8e51ddb399f5e2a7a493e0cc368e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-07-14 [colin]     2.10.0cvs21
+
+       * src/toolbar.c
+               Fix huge arrows
+               Fix button workaround to be able to click
+               if mouse was on button when it went un-
+               sensitive.
+               Revert previous commit, gtk_tool_item_set_homogeneous
+               doesn't mean what it seems to mean ;-)
+
 2007-07-14 [paul]      2.10.0cvs20
 
        * src/toolbar.c
index f33eab14b1c2e5d515e09b90ee634f8f82dcfed3..d983fc50c8f998c538bdfd76f14537e6a871d3fe 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.2.2.20 -r 1.2.2.21 src/gtk/colorlabel.c;  ) > 2.10.0cvs18.patchset
 ( cvs diff -u -r 1.382.2.394 -r 1.382.2.395 src/compose.c;  cvs diff -u -r 1.207.2.167 -r 1.207.2.168 src/folderview.c;  cvs diff -u -r 1.274.2.195 -r 1.274.2.196 src/mainwindow.c;  cvs diff -u -r 1.94.2.137 -r 1.94.2.138 src/messageview.c;  cvs diff -u -r 1.395.2.310 -r 1.395.2.311 src/summaryview.c;  cvs diff -u -r 1.43.2.67 -r 1.43.2.68 src/toolbar.c;  cvs diff -u -r 1.19.2.18 -r 1.19.2.19 src/toolbar.h;  ) > 2.10.0cvs19.patchset
 ( cvs diff -u -r 1.43.2.68 -r 1.43.2.69 src/toolbar.c;  ) > 2.10.0cvs20.patchset
+( cvs diff -u -r 1.43.2.69 -r 1.43.2.70 src/toolbar.c;  ) > 2.10.0cvs21.patchset
index fe6a0d530c80b182476381a2b869107ab3ef7100..5404a5cf8592be58374797a1599009ec570f65fa 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=10
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=20
+EXTRA_VERSION=21
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 499cf89fe8fdd869782c63265702ec7ef715f9d9..fcd6c903e3c9529f866db6163dfba17a859d040e 100644 (file)
@@ -1561,9 +1561,14 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
        }
 }
 
+#ifndef MAEMO
+#define HOMOGENEOUS TRUE
+#else
+#define HOMOGENEOUS FALSE
+#endif
 #define TOOLBAR_ITEM(item,icon,text,tooltip) {                                                         \
        item = GTK_WIDGET(gtk_tool_button_new(icon, text));                                             \
-       gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), FALSE);                              \
+       gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), HOMOGENEOUS);                                \
        gtk_tool_item_set_is_important(GTK_TOOL_ITEM(item), TRUE);                                      \
        g_signal_connect (G_OBJECT(item), "clicked", G_CALLBACK(toolbar_buttons_cb), toolbar_item);     \
        gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(item), -1);                              \
@@ -1572,8 +1577,10 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
 }
 
 #define TOOLBAR_MENUITEM(item,icon,text,tooltip,menutip) {                                             \
+       GtkWidget *child = NULL, *btn = NULL, *arr = NULL;                                              \
+       GList *gchild = NULL;                                                                           \
        item = GTK_WIDGET(gtk_menu_tool_button_new(icon, text));                                        \
-       gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), FALSE);                              \
+       gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), HOMOGENEOUS);                                \
        gtk_tool_item_set_is_important(GTK_TOOL_ITEM(item), TRUE);                                      \
        g_signal_connect (G_OBJECT(item), "clicked", G_CALLBACK(toolbar_buttons_cb), toolbar_item);     \
        gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(item), -1);                              \
@@ -1581,6 +1588,13 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
                        tooltip, NULL);                                                                 \
        gtk_menu_tool_button_set_arrow_tooltip(GTK_MENU_TOOL_BUTTON(item),                              \
                                GTK_TOOLTIPS(toolbar_tips), menutip, NULL);                             \
+       child = gtk_bin_get_child(GTK_BIN(item));                                                       \
+       gchild = gtk_container_get_children(                                                            \
+                       GTK_CONTAINER(child));                                                          \
+       btn = (GtkWidget *)gchild->data;                                                                \
+       arr = (GtkWidget *)(gchild->next?gchild->next->data:NULL);                                      \
+       gchild = gtk_container_get_children(GTK_CONTAINER(arr));                                        \
+       gtk_widget_set_size_request(GTK_WIDGET(gchild->data), 9, -1);                                   \
 }
 
 #define MAKE_MENU(entries,path,btn) {                                                                  \
@@ -1962,12 +1976,50 @@ void toolbar_update(ToolbarType type, gpointer data)
 }
 
 #define GTK_BUTTON_SET_SENSITIVE(widget,sensitive) {           \
-       gboolean in_btn = FALSE;                                \
+       gboolean in_btn1 = FALSE, in_btn2 = FALSE;              \
        if (GTK_IS_BUTTON(widget))                              \
-               in_btn = GTK_BUTTON(widget)->in_button;         \
+               in_btn1 = GTK_BUTTON(widget)->in_button;        \
+       else if (GTK_IS_MENU_TOOL_BUTTON(widget)) {             \
+               GtkWidget *child = gtk_bin_get_child(           \
+                       GTK_BIN(widget));                       \
+               GList *gchild = gtk_container_get_children(     \
+                       GTK_CONTAINER(child));                  \
+               GtkWidget *btn = (GtkWidget *)gchild->data;     \
+               GtkWidget *arr = (GtkWidget *)                  \
+                       (gchild->next?gchild->next->data:NULL); \
+               if (GTK_IS_BUTTON(btn))                         \
+                       in_btn1 = GTK_BUTTON(btn)->in_button;   \
+               if (GTK_IS_BUTTON(arr))                         \
+                       in_btn2 = GTK_BUTTON(arr)->in_button;   \
+       }                                                       \
+       else if (GTK_IS_TOOL_ITEM(widget)) {                    \
+               GtkWidget *child = gtk_bin_get_child(           \
+                       GTK_BIN(widget));                       \
+               if (GTK_IS_BUTTON(child))                       \
+                       in_btn1 = GTK_BUTTON(child)->in_button; \
+       }                                                       \
        gtk_widget_set_sensitive(widget, sensitive);            \
        if (GTK_IS_BUTTON(widget))                              \
-               GTK_BUTTON(widget)->in_button = in_btn;         \
+               GTK_BUTTON(widget)->in_button = in_btn1;        \
+       else if (GTK_IS_MENU_TOOL_BUTTON(widget)) {             \
+               GtkWidget *child = gtk_bin_get_child(           \
+                       GTK_BIN(widget));                       \
+               GList *gchild = gtk_container_get_children(     \
+                       GTK_CONTAINER(child));                  \
+               GtkWidget *btn = (GtkWidget *)gchild->data;     \
+               GtkWidget *arr = (GtkWidget *)                  \
+                       (gchild->next?gchild->next->data:NULL); \
+               if (GTK_IS_BUTTON(btn))                         \
+                       GTK_BUTTON(btn)->in_button = in_btn1;   \
+               if (GTK_IS_BUTTON(arr))                         \
+                       GTK_BUTTON(arr)->in_button = in_btn2;   \
+       }                                                       \
+       else if (GTK_IS_TOOL_ITEM(widget)) {                    \
+               GtkWidget *child = gtk_bin_get_child(           \
+                       GTK_BIN(widget));                       \
+               if (GTK_IS_BUTTON(child))                       \
+                       GTK_BUTTON(child)->in_button = in_btn2; \
+       }                                                       \
 }
 
 void toolbar_main_set_sensitive(gpointer data)