[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