2 new revisions:
Revision: b00a09753242
Author: Muneyuki Noguchi <[email protected]>
Date: Fri Mar 16 22:30:09 2012
Log: Check current visibility of toolbar before changing visibility....
http://code.google.com/p/uim/source/detail?r=b00a09753242
Revision: 7875a05797fd
Author: Muneyuki Noguchi <[email protected]>
Date: Sat Mar 17 02:19:06 2012
Log: Save position when uim-toolbar-gtk is dragged....
http://code.google.com/p/uim/source/detail?r=7875a05797fd
==============================================================================
Revision: b00a09753242
Author: Muneyuki Noguchi <[email protected]>
Date: Fri Mar 16 22:30:09 2012
Log: Check current visibility of toolbar before changing visibility.
* gtk2/toolbar/common-gtk.c
- (helper_toolbar_prop_list_update):
Check if uim-toolbar-gtk is visible.
* qt4/toolbar/common-uimstateindicator.cpp
- (UimStateIndicator::propListUpdate):
Check if uim-toolbar-qt4 is visible.
http://code.google.com/p/uim/source/detail?r=b00a09753242
Modified:
/gtk2/toolbar/common-gtk.c
/qt4/toolbar/common-uimstateindicator.cpp
=======================================
--- /gtk2/toolbar/common-gtk.c Sat Mar 10 15:42:14 2012
+++ /gtk2/toolbar/common-gtk.c Fri Mar 16 22:30:09 2012
@@ -792,15 +792,21 @@
}
toplevel = gtk_widget_get_toplevel(widget);
is_hidden = (is_hidden && strcmp(display_time, "always"));
- if (is_hidden) {
- gtk_widget_hide(toplevel);
- } else {
- gint x = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel),
- "position_x"));
- gint y = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel),
- "position_y"));
- gtk_window_move(GTK_WINDOW(toplevel), x, y);
- gtk_widget_show(toplevel);
+#if GTK_CHECK_VERSION(2, 18, 0)
+ if (gtk_widget_get_visible(toplevel) == is_hidden) {
+#else
+ if (GTK_WIDGET_VISIBLE(toplevel) == is_hidden) {
+#endif
+ if (is_hidden) {
+ gtk_widget_hide(toplevel);
+ } else {
+ gint x = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel),
+ "position_x"));
+ gint y = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel),
+ "position_y"));
+ gtk_window_move(GTK_WINDOW(toplevel), x, y);
+ gtk_widget_show(toplevel);
+ }
}
/* create tool buttons */
=======================================
--- /qt4/toolbar/common-uimstateindicator.cpp Sat Mar 10 15:42:14 2012
+++ /qt4/toolbar/common-uimstateindicator.cpp Fri Mar 16 22:30:09 2012
@@ -238,7 +238,9 @@
}
foreach ( QWidget *widget, QApplication::topLevelWidgets() ) {
if ( widget->isAncestorOf( this ) ) {
- widget->setHidden( isHidden && strcmp( display_time, "always" )
);
+ isHidden = ( isHidden && strcmp( display_time, "always" ) );
+ if ( isHidden != widget->isHidden() )
+ widget->setHidden( isHidden );
break;
}
}
==============================================================================
Revision: 7875a05797fd
Author: Muneyuki Noguchi <[email protected]>
Date: Sat Mar 17 02:19:06 2012
Log: Save position when uim-toolbar-gtk is dragged.
* gtk2/toolbar/standalone-gtk.c
- (helper_win_set_position):
Save position before moving uim-toolbar-gtk.
- (main): Don't save position
just after helper_win_set_position() is called.
http://code.google.com/p/uim/source/detail?r=7875a05797fd
Modified:
/gtk2/toolbar/standalone-gtk.c
=======================================
--- /gtk2/toolbar/standalone-gtk.c Sat Mar 10 13:51:31 2012
+++ /gtk2/toolbar/standalone-gtk.c Sat Mar 17 02:19:06 2012
@@ -149,6 +149,8 @@
else if (wy > sc_h - h)
wy = sc_h -h;
+ g_object_set_data(G_OBJECT(window), "position_x", GINT_TO_POINTER(wx));
+ g_object_set_data(G_OBJECT(window), "position_y", GINT_TO_POINTER(wy));
gtk_window_move(GTK_WINDOW(window), wx, wy);
}
@@ -324,6 +326,7 @@
gtk_widget_show_all(GTK_WIDGET(window));
if (argc > 1) {
+ gint x, y;
if (!gtk_window_parse_geometry(GTK_WINDOW(window), argv[1])) {
#if GLIB_CHECK_VERSION(2, 6, 0)
@@ -332,6 +335,9 @@
g_warning(_("Unable to parse the geometry string '%s'"), argv[1]);
#endif
}
+ gtk_window_get_position(GTK_WINDOW(window), &x, &y);
+ g_object_set_data(G_OBJECT(window), "position_x", GINT_TO_POINTER(x));
+ g_object_set_data(G_OBJECT(window), "position_y", GINT_TO_POINTER(y));
} else {
gint x, y, w, h, sc_w, sc_h;
gint panel_height = 32; /* FIXME! */
@@ -344,12 +350,6 @@
y = sc_h - h - panel_height; /* FIXME! */
helper_win_set_position(window, x, y);
}
- {
- gint x, y;
- gtk_window_get_position(GTK_WINDOW(window), &x, &y);
- g_object_set_data(G_OBJECT(window), "position_x", GINT_TO_POINTER(x));
- g_object_set_data(G_OBJECT(window), "position_y", GINT_TO_POINTER(y));
- }
gtk_main();