[gimp] Add a GimpDisplayShell::scaled() handler to GimpImageWindow
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Add a GimpDisplayShell::scaled() handler to GimpImageWindow
- Date: Tue, 29 Sep 2009 18:36:43 +0000 (UTC)
commit 3547a25390456a0c258c78309437fa5dc668000d
Author: Michael Natterer <mitch gimp org>
Date: Wed Sep 23 18:52:42 2009 +0200
Add a GimpDisplayShell::scaled() handler to GimpImageWindow
...which is connected to the window's active display. Remove updating
the window's menubar_manager from GimpDisplayShell's scaled()
impl. Had to hack around a bit with the new API to set the window's
active display because they are still the same widget.
app/display/gimpdisplay.c | 4 ++++
app/display/gimpdisplayshell.c | 12 +++---------
app/display/gimpimagewindow.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 9 deletions(-)
---
diff --git a/app/display/gimpdisplay.c b/app/display/gimpdisplay.c
index 92ebc22..b8a6da6 100644
--- a/app/display/gimpdisplay.c
+++ b/app/display/gimpdisplay.c
@@ -387,6 +387,10 @@ gimp_display_new (Gimp *gimp,
gtk_widget_show (display->shell);
/* FIXME image window */
+ gimp_image_window_set_active_display (GIMP_IMAGE_WINDOW (display->shell),
+ display);
+
+ /* FIXME image window */
g_signal_connect (GIMP_IMAGE_WINDOW (display->shell)->statusbar, "cancel",
G_CALLBACK (gimp_display_progress_canceled),
display);
diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c
index 9cb7863..45c0081 100644
--- a/app/display/gimpdisplayshell.c
+++ b/app/display/gimpdisplayshell.c
@@ -675,11 +675,6 @@ gimp_display_shell_real_scaled (GimpDisplayShell *shell)
gimp_display_shell_title_update (shell);
- /* FIXME image window */
- /* update the <Image>/View/Zoom menu */
- gimp_ui_manager_update (GIMP_IMAGE_WINDOW (shell)->menubar_manager,
- shell->display);
-
user_context = gimp_get_user_context (shell->display->gimp);
if (shell->display == gimp_context_get_display (user_context))
@@ -804,13 +799,12 @@ gimp_display_shell_new (GimpDisplay *display,
shell->display = display;
+ /* FIXME image window */
+ GIMP_IMAGE_WINDOW (shell)->active_display = display;
+
shell->popup_manager = popup_manager;
shell->display_factory = display_factory;
- /* FIXME image window */
- gimp_image_window_set_active_display (GIMP_IMAGE_WINDOW (shell),
- display);
-
if (display->image)
{
options = shell->options;
diff --git a/app/display/gimpimagewindow.c b/app/display/gimpimagewindow.c
index 21216c1..7b0f469 100644
--- a/app/display/gimpimagewindow.c
+++ b/app/display/gimpimagewindow.c
@@ -75,6 +75,9 @@ static void gimp_image_window_show_tooltip (GimpUIManager *manager,
static void gimp_image_window_hide_tooltip (GimpUIManager *manager,
GimpImageWindow *window);
+static void gimp_image_window_shell_scaled (GimpDisplayShell *shell,
+ GimpImageWindow *window);
+
G_DEFINE_TYPE (GimpImageWindow, gimp_image_window, GIMP_TYPE_WINDOW)
@@ -352,17 +355,36 @@ void
gimp_image_window_set_active_display (GimpImageWindow *window,
GimpDisplay *display)
{
+ GimpDisplayShell *active_shell;
+
g_return_if_fail (GIMP_IS_IMAGE_WINDOW (window));
g_return_if_fail (GIMP_IS_DISPLAY (display));
+#if 0
+ /* FIXME enable this when the display is a separate widget */
if (display == window->active_display)
return;
if (window->active_display)
{
+ active_shell = GIMP_DISPLAY_SHELL (window->active_display->shell);
+
+ g_signal_handlers_disconnect_by_func (active_shell,
+ gimp_image_window_shell_scaled,
+ window);
}
window->active_display = display;
+#endif
+
+ active_shell = GIMP_DISPLAY_SHELL (window->active_display->shell);
+
+ g_signal_connect (active_shell, "scaled",
+ G_CALLBACK (gimp_image_window_shell_scaled),
+ window);
+
+ gimp_ui_manager_update (window->menubar_manager,
+ window->active_display);
}
GimpDisplay *
@@ -415,3 +437,11 @@ gimp_image_window_hide_tooltip (GimpUIManager *manager,
gimp_statusbar_pop (GIMP_STATUSBAR (window->statusbar), "menu-tooltip");
}
+static void
+gimp_image_window_shell_scaled (GimpDisplayShell *shell,
+ GimpImageWindow *window)
+{
+ /* update the <Image>/View/Zoom menu */
+ gimp_ui_manager_update (window->menubar_manager,
+ shell->display);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]