[Xfce4-commits] [xfce/xfce4-panel] 10/73: Further pager fixes and cleanup
noreply at xfce.org
noreply at xfce.org
Sun Feb 26 16:33:51 CET 2017
This is an automated email from the git hooks/post-receive script.
andrzejr pushed a commit to branch master
in repository xfce/xfce4-panel.
commit 7c1454adb2a824fa1a2009a6bdd6fd17a51bb1d8
Author: Andrzej <ndrwrdck at gmail.com>
Date: Tue Oct 25 21:57:13 2016 +0100
Further pager fixes and cleanup
Included commits:
pager: fallback for case when pager is not yet set
pager: recalculate size when panel size changes
---
plugins/pager/pager.c | 140 ++++++++++++++++----------------------------------
1 file changed, 43 insertions(+), 97 deletions(-)
diff --git a/plugins/pager/pager.c b/plugins/pager/pager.c
index a359ff8..1e36b8c 100644
--- a/plugins/pager/pager.c
+++ b/plugins/pager/pager.c
@@ -52,8 +52,6 @@ static void pager_plugin_set_property (GObject *ob
guint prop_id,
const GValue *value,
GParamSpec *pspec);
-static void pager_plugin_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
static gboolean pager_plugin_scroll_event (GtkWidget *widget,
GdkEventScroll *event);
static void pager_plugin_screen_changed (GtkWidget *widget,
@@ -133,10 +131,9 @@ pager_plugin_class_init (PagerPluginClass *klass)
widget_class = GTK_WIDGET_CLASS (klass);
widget_class->scroll_event = pager_plugin_scroll_event;
- //widget_class->size_request = pager_plugin_size_request;
- //widget_class->get_preferred_width = pager_plugin_get_preferred_width;
+ widget_class->get_preferred_width = pager_plugin_get_preferred_width;
widget_class->get_preferred_width_for_height = pager_plugin_get_preferred_width_for_height;
- //widget_class->get_preferred_height = pager_plugin_get_preferred_height;
+ widget_class->get_preferred_height = pager_plugin_get_preferred_height;
widget_class->get_preferred_height_for_width = pager_plugin_get_preferred_height_for_width;
plugin_class = XFCE_PANEL_PLUGIN_CLASS (klass);
@@ -418,6 +415,8 @@ static gboolean
pager_plugin_size_changed (XfcePanelPlugin *panel_plugin,
gint size)
{
+ gtk_widget_queue_resize (GTK_WIDGET (panel_plugin));
+
/* do not set fixed size */
return TRUE;
}
@@ -570,71 +569,6 @@ pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
}
-#if 0
-static void
-pager_plugin_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget);
- XfcePanelPluginMode mode;
- gint n_workspaces, n_cols;
-
- if (plugin->miniature_view)
- {
- mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
- n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen);
- n_cols = MAX (1, (n_workspaces + plugin->rows - 1) / plugin->rows);
- if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
- {
- requisition->height = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- requisition->width = (gint) (requisition->height / plugin->rows * plugin->ratio * n_cols);
- }
- else if (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL)
- {
- requisition->width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- requisition->height = (gint) (requisition->width / plugin->rows / plugin->ratio * n_cols);
- }
- else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */
- {
- requisition->width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- requisition->height = (gint) (requisition->width / n_cols / plugin->ratio * plugin->rows);
- }
- }
- else
- {
- gtk_widget_size_request (plugin->pager, requisition);
- }
-}
-#endif
-
-
-static void
-pager_plugin_get_preferred_width (GtkWidget *widget,
- gint *minimum_width,
- gint *natural_width)
-{
- PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget);
- XfcePanelPluginMode mode;
- gint n_workspaces, n_cols;
-
- if (plugin->miniature_view)
- {
- mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
- n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen);
- n_cols = MAX (1, (n_workspaces + plugin->rows - 1) / plugin->rows);
- if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
- *minimum_width = *natural_width = 1; //(gint) (requisition->height / plugin->rows * plugin->ratio * n_cols);
- else if (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL)
- *minimum_width = *natural_width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */
- *minimum_width = *natural_width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- }
- else
- {
- gtk_widget_get_preferred_width (plugin->pager, minimum_width, natural_width);
- }
-}
-
static void
pager_plugin_get_preferred_width_for_height (GtkWidget *widget,
gint height,
@@ -657,36 +591,13 @@ pager_plugin_get_preferred_width_for_height (GtkWidget *widget,
else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */
*minimum_width = *natural_width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
}
- else
+ else if (plugin->pager)
{
gtk_widget_get_preferred_width_for_height (plugin->pager, height, minimum_width, natural_width);
}
-}
-
-static void
-pager_plugin_get_preferred_height (GtkWidget *widget,
- gint *minimum_height,
- gint *natural_height)
-{
- PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget);
- XfcePanelPluginMode mode;
- gint n_workspaces, n_cols;
-
- if (plugin->miniature_view)
- {
- mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
- n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen);
- n_cols = MAX (1, (n_workspaces + plugin->rows - 1) / plugin->rows);
- if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
- *minimum_height = *natural_height = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
- else if (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL)
- *minimum_height = *natural_height = 1; //(gint) (requisition->width / plugin->rows / plugin->ratio * n_cols);
- else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */
- *minimum_height = *natural_height = 1; //(gint) (requisition->width / n_cols / plugin->ratio * plugin->rows);
- }
- else
+ else // initial fallback
{
- gtk_widget_get_preferred_height (plugin->pager, minimum_height, natural_height);
+ *minimum_width = *natural_width = 1;
}
}
@@ -712,9 +623,44 @@ pager_plugin_get_preferred_height_for_width (GtkWidget *widget,
else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */
*minimum_height = *natural_height = (gint) (width / n_cols / plugin->ratio * plugin->rows);
}
- else
+ else if (plugin->pager)
{
gtk_widget_get_preferred_height_for_width (plugin->pager, width, minimum_height, natural_height);
}
+ else // initial fallback
+ {
+ *minimum_height = *natural_height = 1;
+ }
+}
+
+static void
+pager_plugin_get_preferred_width (GtkWidget *widget,
+ gint *minimum_width,
+ gint *natural_width)
+{
+ PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget);
+ XfcePanelPluginMode mode;
+ gint height = 1;
+
+ mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
+ if (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL)
+ height = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
+ pager_plugin_get_preferred_width_for_height (widget, height, minimum_width, natural_width);
+}
+
+static void
+pager_plugin_get_preferred_height (GtkWidget *widget,
+ gint *minimum_height,
+ gint *natural_height)
+{
+ PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget);
+ XfcePanelPluginMode mode;
+ gint width = 1;
+
+ mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
+ if (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL ||
+ mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR)
+ width = xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin));
+ pager_plugin_get_preferred_height_for_width (widget, width, minimum_height, natural_height);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list