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();

Reply via email to