[Xfce4-commits] <xfce4-panel:nick/gtk3> Pager: ported to Gtk3

Andrzej noreply at xfce.org
Thu Apr 11 22:26:01 CEST 2013


Updating branch refs/heads/nick/gtk3
         to dfa591b84694c5d2bb8b8c534359da9281e35d6a (commit)
       from 4fefed2c3dd242cc2cb9d7d4f59aba1ee130a996 (commit)

commit dfa591b84694c5d2bb8b8c534359da9281e35d6a
Author: Andrzej <ndrwrdck at gmail.com>
Date:   Thu Apr 11 21:24:48 2013 +0100

    Pager: ported to Gtk3
    
    WnckPager needs a similar functionality to the one added in libwnck-2.31
    to correctly resize the pager widget in a deskbar mode.
    Perhaps that can be emulated with gtk3+ height_for_width/width_for_height
    mechanism.

 plugins/pager/pager-buttons.c |   36 ++++++++++++------------------------
 plugins/pager/pager.c         |   10 +++-------
 2 files changed, 15 insertions(+), 31 deletions(-)

diff --git a/plugins/pager/pager-buttons.c b/plugins/pager/pager-buttons.c
index c2f434c..2a4f190 100644
--- a/plugins/pager/pager-buttons.c
+++ b/plugins/pager/pager-buttons.c
@@ -61,12 +61,12 @@ static void pager_buttons_viewport_button_toggled    (GtkWidget     *button,
 
 struct _PagerButtonsClass
 {
-  GtkTableClass __parent__;
+  GtkGridClass    __parent__;
 };
 
 struct _PagerButtons
 {
-  GtkTable __parent__;
+  GtkGrid         __parent__;
 
   GSList         *buttons;
 
@@ -95,7 +95,7 @@ enum
 
 
 
-XFCE_PANEL_DEFINE_TYPE (PagerButtons, pager_buttons, GTK_TYPE_TABLE)
+XFCE_PANEL_DEFINE_TYPE (PagerButtons, pager_buttons, GTK_TYPE_GRID)
 
 
 
@@ -147,7 +147,9 @@ pager_buttons_init (PagerButtons *pager)
   /* although I'd prefer normal allocation, the homogeneous setting
    * takes care of small panels, while non-homogeneous tables allocate
    * outside the panel size --nick */
-  gtk_table_set_homogeneous (GTK_TABLE (pager), TRUE);
+  /* gtk_table_set_homogeneous (GTK_TABLE (pager), TRUE); */
+  gtk_grid_set_row_homogeneous (GTK_GRID (pager), TRUE);
+  gtk_grid_set_column_homogeneous (GTK_GRID (pager), TRUE);
 }
 
 
@@ -294,8 +296,6 @@ pager_buttons_rebuild_idle (gpointer user_data)
   panel_return_val_if_fail (XFCE_IS_PAGER_BUTTONS (pager), FALSE);
   panel_return_val_if_fail (WNCK_IS_SCREEN (pager->wnck_screen), FALSE);
 
-  GDK_THREADS_ENTER ();
-
   gtk_container_foreach (GTK_CONTAINER (pager),
       (GtkCallback) gtk_widget_destroy, NULL);
 
@@ -351,11 +351,6 @@ pager_buttons_rebuild_idle (gpointer user_data)
         cols++;
     }
 
-  if (pager->orientation == GTK_ORIENTATION_HORIZONTAL)
-    gtk_table_resize (GTK_TABLE (pager), rows, cols);
-  else
-    gtk_table_resize (GTK_TABLE (pager), cols, rows);
-
 
   panel_plugin = gtk_widget_get_ancestor (GTK_WIDGET (pager), XFCE_TYPE_PANEL_PLUGIN);
 
@@ -404,11 +399,8 @@ pager_buttons_rebuild_idle (gpointer user_data)
               col = n % cols;
             }
 
-
-          gtk_table_attach (GTK_TABLE (pager), button,
-                            row, row + 1, col, col + 1,
-                            GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND,
-                            0, 0);
+          gtk_grid_attach (GTK_GRID (pager), button,
+                           row, col, 1, 1);
         }
     }
   else
@@ -449,10 +441,8 @@ pager_buttons_rebuild_idle (gpointer user_data)
               col = n % cols;
             }
 
-          gtk_table_attach (GTK_TABLE (pager), button,
-                            row, row + 1, col, col + 1,
-                            GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND,
-                            0, 0);
+          gtk_grid_attach (GTK_GRID (pager), button,
+                           row, col, 1, 1);
         }
     }
 
@@ -460,8 +450,6 @@ pager_buttons_rebuild_idle (gpointer user_data)
 
   leave:
 
-  GDK_THREADS_LEAVE ();
-
   return FALSE;
 }
 
@@ -482,8 +470,8 @@ pager_buttons_queue_rebuild (PagerButtons *pager)
 
   if (pager->rebuild_id == 0)
     {
-      pager->rebuild_id = g_idle_add_full (G_PRIORITY_LOW, pager_buttons_rebuild_idle,
-                                           pager, pager_buttons_rebuild_idle_destroyed);
+      pager->rebuild_id = gdk_threads_add_idle_full (G_PRIORITY_LOW, pager_buttons_rebuild_idle,
+                                                     pager, pager_buttons_rebuild_idle_destroyed);
     }
 }
 
diff --git a/plugins/pager/pager.c b/plugins/pager/pager.c
index 28195a4..950fad9 100644
--- a/plugins/pager/pager.c
+++ b/plugins/pager/pager.c
@@ -297,19 +297,17 @@ pager_plugin_screen_layout_changed (PagerPlugin *plugin)
 
   if (plugin->miniature_view)
     {
-      plugin->pager = wnck_pager_new (plugin->wnck_screen);
+      plugin->pager = wnck_pager_new ();
       wnck_pager_set_display_mode (WNCK_PAGER (plugin->pager), WNCK_PAGER_DISPLAY_CONTENT);
       if (!wnck_pager_set_n_rows (WNCK_PAGER (plugin->pager), plugin->rows))
         g_message ("Setting the pager rows returned false. Maybe the setting is not applied.");
 
-#ifdef WNCK_CHECK_VERSION
-#if WNCK_CHECK_VERSION (2,31,0)
+#if 0
       wnck_pager_set_layout_policy (WNCK_PAGER (plugin->pager),
                                     (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
                                     WNCK_PAGER_LAYOUT_POLICY_WIDTH_FOR_HEIGHT :
                                     WNCK_PAGER_LAYOUT_POLICY_HEIGHT_FOR_WIDTH);
 #endif
-#endif
       wnck_pager_set_orientation (WNCK_PAGER (plugin->pager), orientation);
     }
   else
@@ -421,14 +419,12 @@ pager_plugin_mode_changed (XfcePanelPlugin     *panel_plugin,
 
   if (plugin->miniature_view)
     {
-#ifdef WNCK_CHECK_VERSION
-#if WNCK_CHECK_VERSION (2,31,0)
+#if 0
       wnck_pager_set_layout_policy (WNCK_PAGER (plugin->pager),
                                     (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
                                     WNCK_PAGER_LAYOUT_POLICY_WIDTH_FOR_HEIGHT :
                                     WNCK_PAGER_LAYOUT_POLICY_HEIGHT_FOR_WIDTH);
 #endif
-#endif
       wnck_pager_set_orientation (WNCK_PAGER (plugin->pager), orientation);
     }
   else


More information about the Xfce4-commits mailing list