mirror of https://github.com/GNOME/gimp.git
app: add screen and monitor to all display and image window constructors
so they appear on the proper monitor as well.
This commit is contained in:
parent
a2f6d60a42
commit
7f23fbec34
|
@ -32,6 +32,7 @@
|
|||
#include "widgets/gimpbufferview.h"
|
||||
#include "widgets/gimpcontainerview.h"
|
||||
#include "widgets/gimpcontainerview-utils.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
|
@ -84,11 +85,14 @@ buffers_paste_as_new_cmd_callback (GtkAction *action,
|
|||
|
||||
if (image)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (editor);
|
||||
GimpImage *new_image;
|
||||
|
||||
new_image = gimp_image_new_from_buffer (image->gimp, image, buffer);
|
||||
gimp_create_display (image->gimp, new_image,
|
||||
GIMP_UNIT_PIXEL, 1.0);
|
||||
GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (new_image);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "widgets/gimpmessagedialog.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
#include "widgets/gimpwindowstrategy.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "dialogs/data-delete-dialog.h"
|
||||
|
||||
|
@ -74,12 +75,15 @@ data_open_as_image_cmd_callback (GtkAction *action,
|
|||
|
||||
if (uri)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (view);
|
||||
GimpImage *image;
|
||||
GimpPDBStatusType status;
|
||||
GError *error = NULL;
|
||||
|
||||
image = file_open_with_display (context->gimp, context, NULL,
|
||||
uri, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
|
|
|
@ -37,14 +37,14 @@
|
|||
|
||||
#include "gegl/gimp-gegl-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpimagewindow.h"
|
||||
|
||||
#include "widgets/gimpaction.h"
|
||||
#include "widgets/gimpmenufactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpimagewindow.h"
|
||||
|
||||
#include "menus/menus.h"
|
||||
|
||||
#include "actions.h"
|
||||
|
@ -314,7 +314,7 @@ debug_show_image_graph (GimpImage *source_image)
|
|||
1.0,
|
||||
GIMP_NORMAL_MODE);
|
||||
gimp_image_add_layer (new_image, layer, NULL, 0, FALSE);
|
||||
gimp_create_display (gimp, new_image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (gimp, new_image, GIMP_UNIT_PIXEL, 1.0, NULL, 0);
|
||||
|
||||
/* Cleanup */
|
||||
g_object_unref (new_image);
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "widgets/gimpdocumentview.h"
|
||||
#include "widgets/gimpmessagebox.h"
|
||||
#include "widgets/gimpmessagedialog.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplay-foreach.h"
|
||||
|
@ -343,6 +344,8 @@ documents_open_image (GtkWidget *editor,
|
|||
uri = gimp_object_get_name (imagefile);
|
||||
|
||||
image = file_open_with_display (context->gimp, context, NULL, uri, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (editor)),
|
||||
gimp_widget_get_monitor (editor),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
|
|
|
@ -317,7 +317,9 @@ edit_paste_as_new_cmd_callback (GtkAction *action,
|
|||
{
|
||||
Gimp *gimp;
|
||||
GimpBuffer *buffer;
|
||||
GtkWidget *widget;
|
||||
return_if_no_gimp (gimp, data);
|
||||
return_if_no_widget (widget, data);
|
||||
|
||||
buffer = gimp_clipboard_get_buffer (gimp);
|
||||
|
||||
|
@ -329,7 +331,9 @@ edit_paste_as_new_cmd_callback (GtkAction *action,
|
|||
buffer);
|
||||
g_object_unref (buffer);
|
||||
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -177,11 +177,13 @@ file_open_recent_cmd_callback (GtkAction *action,
|
|||
if (imagefile)
|
||||
{
|
||||
GimpDisplay *display;
|
||||
GtkWidget *widget;
|
||||
GimpProgress *progress;
|
||||
GimpImage *image;
|
||||
GimpPDBStatusType status;
|
||||
GError *error = NULL;
|
||||
return_if_no_display (display, data);
|
||||
return_if_no_widget (widget, data);
|
||||
|
||||
g_object_ref (display);
|
||||
g_object_ref (imagefile);
|
||||
|
@ -192,6 +194,8 @@ file_open_recent_cmd_callback (GtkAction *action,
|
|||
image = file_open_with_display (gimp, action_data_get_context (data),
|
||||
progress,
|
||||
gimp_object_get_name (imagefile), FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
|
|
|
@ -551,10 +551,10 @@ image_duplicate_cmd_callback (GtkAction *action,
|
|||
|
||||
new_image = gimp_image_duplicate (image);
|
||||
|
||||
gimp_create_display (new_image->gimp,
|
||||
new_image,
|
||||
shell->unit,
|
||||
gimp_zoom_model_get_factor (shell->zoom));
|
||||
gimp_create_display (new_image->gimp, new_image, shell->unit,
|
||||
gimp_zoom_model_get_factor (shell->zoom),
|
||||
G_OBJECT (gtk_widget_get_screen (GTK_WIDGET (shell))),
|
||||
gimp_widget_get_monitor (GTK_WIDGET (shell)));
|
||||
|
||||
g_object_unref (new_image);
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "widgets/gimpcontainerview.h"
|
||||
#include "widgets/gimpimageview.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
|
@ -84,7 +85,9 @@ images_new_view_cmd_callback (GtkAction *action,
|
|||
|
||||
if (image && gimp_container_have (container, GIMP_OBJECT (image)))
|
||||
{
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (GTK_WIDGET (editor))),
|
||||
gimp_widget_get_monitor (GTK_WIDGET (editor)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "widgets/gimpmessagedialog.h"
|
||||
#include "widgets/gimptemplateeditor.h"
|
||||
#include "widgets/gimptemplateview.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "dialogs/template-options-dialog.h"
|
||||
|
||||
|
@ -82,7 +83,7 @@ templates_create_image_cmd_callback (GtkAction *action,
|
|||
GimpContainer *container;
|
||||
GimpContext *context;
|
||||
GimpTemplate *template;
|
||||
return_if_no_gimp(gimp,data);
|
||||
return_if_no_gimp (gimp, data);
|
||||
|
||||
container = gimp_container_view_get_container (editor->view);
|
||||
context = gimp_container_view_get_context (editor->view);
|
||||
|
@ -91,10 +92,13 @@ templates_create_image_cmd_callback (GtkAction *action,
|
|||
|
||||
if (template && gimp_container_have (container, GIMP_OBJECT (template)))
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (editor);
|
||||
GimpImage *image;
|
||||
|
||||
image = gimp_image_new_from_template (gimp, template, context);
|
||||
gimp_create_display (gimp, image, gimp_template_get_unit (template), 1.0);
|
||||
gimp_create_display (gimp, image, gimp_template_get_unit (template), 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
|
||||
gimp_image_new_set_last_template (gimp, template);
|
||||
|
|
|
@ -92,7 +92,9 @@ view_new_cmd_callback (GtkAction *action,
|
|||
|
||||
gimp_create_display (display->gimp,
|
||||
gimp_display_get_image (display),
|
||||
shell->unit, gimp_zoom_model_get_factor (shell->zoom));
|
||||
shell->unit, gimp_zoom_model_get_factor (shell->zoom),
|
||||
G_OBJECT (gtk_widget_get_screen (GTK_WIDGET (shell))),
|
||||
gimp_widget_get_monitor (GTK_WIDGET (shell)));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -261,7 +261,9 @@ app_run (const gchar *full_prog_name,
|
|||
for (i = 0; filenames[i] != NULL; i++)
|
||||
{
|
||||
if (run_loop)
|
||||
file_open_from_command_line (gimp, filenames[i], as_new);
|
||||
file_open_from_command_line (gimp, filenames[i], as_new,
|
||||
NULL, /* FIXME monitor */
|
||||
0 /* FIXME monitor */);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -325,13 +325,16 @@ GimpObject *
|
|||
gimp_create_display (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale)
|
||||
gdouble scale,
|
||||
GObject *screen,
|
||||
gint monitor)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
g_return_val_if_fail (image == NULL || GIMP_IS_IMAGE (image), NULL);
|
||||
g_return_val_if_fail (screen == NULL || G_IS_OBJECT (screen), NULL);
|
||||
|
||||
if (gimp->gui.display_create)
|
||||
return gimp->gui.display_create (gimp, image, unit, scale);
|
||||
return gimp->gui.display_create (gimp, image, unit, scale, screen, monitor);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,9 @@ struct _GimpGui
|
|||
GimpObject * (* display_create) (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale);
|
||||
gdouble scale,
|
||||
GObject *screen,
|
||||
gint monitor);
|
||||
void (* display_delete) (GimpObject *display);
|
||||
void (* displays_reconnect) (Gimp *gimp,
|
||||
GimpImage *old_image,
|
||||
|
@ -111,7 +113,9 @@ guint32 gimp_get_display_window_id (Gimp *gimp,
|
|||
GimpObject * gimp_create_display (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale);
|
||||
gdouble scale,
|
||||
GObject *screen,
|
||||
gint monitor);
|
||||
void gimp_delete_display (Gimp *gimp,
|
||||
GimpObject *display);
|
||||
void gimp_reconnect_displays (Gimp *gimp,
|
||||
|
|
|
@ -865,6 +865,7 @@ void
|
|||
gimp_create_image_from_buffer (Gimp *gimp,
|
||||
GeglBuffer *buffer)
|
||||
{
|
||||
#if 0
|
||||
GimpImage *image;
|
||||
GimpLayer *layer;
|
||||
const Babl *format;
|
||||
|
@ -888,4 +889,5 @@ gimp_create_image_from_buffer (Gimp *gimp,
|
|||
gimp_image_add_layer (image, layer, NULL, -1, FALSE);
|
||||
|
||||
gimp_create_display (gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "widgets/gimpfiledialog.h"
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "file-open-dialog.h"
|
||||
|
||||
|
@ -216,6 +217,8 @@ file_open_dialog_open_image (GtkWidget *open_dialog,
|
|||
GIMP_PROGRESS (open_dialog),
|
||||
uri, uri, FALSE,
|
||||
load_proc,
|
||||
G_OBJECT (gtk_widget_get_screen (open_dialog)),
|
||||
gimp_widget_get_monitor (open_dialog),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "widgets/gimpcontainerentry.h"
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpprogressbox.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "file-open-location-dialog.h"
|
||||
|
||||
|
@ -204,6 +205,8 @@ file_open_location_response (GtkDialog *dialog,
|
|||
gimp_get_user_context (gimp),
|
||||
GIMP_PROGRESS (box),
|
||||
uri, text, FALSE, NULL,
|
||||
G_OBJECT (gtk_widget_get_screen (entry)),
|
||||
gimp_widget_get_monitor (entry),
|
||||
&status, &error);
|
||||
|
||||
if (image == NULL && status != GIMP_PDB_CANCEL)
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "widgets/gimpmessagebox.h"
|
||||
#include "widgets/gimpmessagedialog.h"
|
||||
#include "widgets/gimptemplateeditor.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "image-new-dialog.h"
|
||||
|
||||
|
@ -360,13 +361,17 @@ image_new_create_image (ImageNewDialog *dialog)
|
|||
Gimp *gimp = dialog->context->gimp;
|
||||
GimpImage *image;
|
||||
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
gtk_widget_hide (dialog->dialog);
|
||||
|
||||
image = gimp_image_new_from_template (gimp, template,
|
||||
gimp_get_user_context (gimp));
|
||||
gimp_create_display (gimp, image, gimp_template_get_unit (template), 1.0);
|
||||
gimp_create_display (gimp, image, gimp_template_get_unit (template), 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (dialog->dialog)),
|
||||
gimp_widget_get_monitor (dialog->dialog));
|
||||
g_object_unref (image);
|
||||
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
|
||||
gimp_image_new_set_last_template (gimp, template);
|
||||
|
||||
g_object_unref (template);
|
||||
|
|
|
@ -393,7 +393,9 @@ gimp_display_new (Gimp *gimp,
|
|||
gdouble scale,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpUIManager *popup_manager,
|
||||
GimpDialogFactory *dialog_factory)
|
||||
GimpDialogFactory *dialog_factory,
|
||||
GdkScreen *screen,
|
||||
gint monitor)
|
||||
{
|
||||
GimpDisplay *display;
|
||||
GimpDisplayPrivate *private;
|
||||
|
@ -402,6 +404,7 @@ gimp_display_new (Gimp *gimp,
|
|||
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
g_return_val_if_fail (image == NULL || GIMP_IS_IMAGE (image), NULL);
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||
|
||||
/* If there isn't an interface, never create a display */
|
||||
if (gimp->no_interface)
|
||||
|
@ -443,7 +446,9 @@ gimp_display_new (Gimp *gimp,
|
|||
window = gimp_image_window_new (gimp,
|
||||
private->image,
|
||||
menu_factory,
|
||||
dialog_factory);
|
||||
dialog_factory,
|
||||
screen,
|
||||
monitor);
|
||||
}
|
||||
|
||||
/* create the shell for the image */
|
||||
|
|
|
@ -55,7 +55,9 @@ GimpDisplay * gimp_display_new (Gimp *gimp,
|
|||
gdouble scale,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpUIManager *popup_manager,
|
||||
GimpDialogFactory *dialog_factory);
|
||||
GimpDialogFactory *dialog_factory,
|
||||
GdkScreen *screen,
|
||||
gint monitor);
|
||||
void gimp_display_delete (GimpDisplay *display);
|
||||
void gimp_display_close (GimpDisplay *display);
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#include "vectors/gimpvectors-import.h"
|
||||
|
||||
#include "widgets/gimpdnd.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "gimpdisplay.h"
|
||||
#include "gimpdisplayshell.h"
|
||||
|
@ -224,7 +225,9 @@ gimp_display_shell_drop_drawable (GtkWidget *widget,
|
|||
{
|
||||
image = gimp_image_new_from_drawable (shell->display->gimp,
|
||||
GIMP_DRAWABLE (viewable));
|
||||
gimp_create_display (shell->display->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (shell->display->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
|
||||
return;
|
||||
|
@ -439,7 +442,9 @@ gimp_display_shell_drop_buffer (GtkWidget *widget,
|
|||
{
|
||||
image = gimp_image_new_from_buffer (shell->display->gimp, NULL,
|
||||
GIMP_BUFFER (viewable));
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
|
||||
return;
|
||||
|
@ -556,6 +561,8 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
|
|||
new_image = file_open_with_display (shell->display->gimp, context,
|
||||
NULL,
|
||||
uri, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! new_image && status != GIMP_PDB_CANCEL)
|
||||
|
@ -567,6 +574,8 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
|
|||
image = file_open_with_display (shell->display->gimp, context,
|
||||
GIMP_PROGRESS (shell->display),
|
||||
uri, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
|
@ -617,7 +626,9 @@ gimp_display_shell_drop_component (GtkWidget *widget,
|
|||
{
|
||||
dest_image = gimp_image_new_from_component (image->gimp,
|
||||
image, component);
|
||||
gimp_create_display (dest_image->gimp, dest_image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (dest_image->gimp, dest_image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (dest_image);
|
||||
|
||||
return;
|
||||
|
@ -673,7 +684,9 @@ gimp_display_shell_drop_pixbuf (GtkWidget *widget,
|
|||
{
|
||||
image = gimp_image_new_from_pixbuf (shell->display->gimp, pixbuf,
|
||||
_("Dropped Buffer"));
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
|
||||
return;
|
||||
|
|
|
@ -86,6 +86,8 @@ enum
|
|||
PROP_GIMP,
|
||||
PROP_MENU_FACTORY,
|
||||
PROP_DIALOG_FACTORY,
|
||||
PROP_INITIAL_SCREEN,
|
||||
PROP_INITIAL_MONITOR
|
||||
};
|
||||
|
||||
|
||||
|
@ -112,6 +114,9 @@ struct _GimpImageWindowPrivate
|
|||
GdkWindowState window_state;
|
||||
|
||||
const gchar *entry_id;
|
||||
|
||||
GdkScreen *initial_screen;
|
||||
gint initial_monitor;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
|
@ -293,6 +298,19 @@ gimp_image_window_class_init (GimpImageWindowClass *klass)
|
|||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
|
||||
g_object_class_install_property (object_class, PROP_INITIAL_SCREEN,
|
||||
g_param_spec_object ("initial-screen",
|
||||
NULL, NULL,
|
||||
GDK_TYPE_SCREEN,
|
||||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
g_object_class_install_property (object_class, PROP_INITIAL_MONITOR,
|
||||
g_param_spec_int ("initial-monitor",
|
||||
NULL, NULL,
|
||||
0, 16, 0,
|
||||
GIMP_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
|
||||
g_type_class_add_private (klass, sizeof (GimpImageWindowPrivate));
|
||||
|
||||
gtk_rc_parse_string (image_window_rc_style);
|
||||
|
@ -460,8 +478,8 @@ gimp_image_window_constructed (GObject *object)
|
|||
gimp_image_window_session_update (window,
|
||||
NULL /*new_display*/,
|
||||
gimp_image_window_config_to_entry_id (config),
|
||||
gdk_screen_get_default (), /* FIXME monitor */
|
||||
0 /* FIXME monitor */);
|
||||
private->initial_screen,
|
||||
private->initial_monitor);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -527,6 +545,12 @@ gimp_image_window_set_property (GObject *object,
|
|||
case PROP_DIALOG_FACTORY:
|
||||
private->dialog_factory = g_value_get_object (value);
|
||||
break;
|
||||
case PROP_INITIAL_SCREEN:
|
||||
private->initial_screen = g_value_get_object (value);
|
||||
break;
|
||||
case PROP_INITIAL_MONITOR:
|
||||
private->initial_monitor = g_value_get_int (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
|
@ -551,6 +575,12 @@ gimp_image_window_get_property (GObject *object,
|
|||
case PROP_DIALOG_FACTORY:
|
||||
g_value_set_object (value, private->dialog_factory);
|
||||
break;
|
||||
case PROP_INITIAL_SCREEN:
|
||||
g_value_set_object (value, private->initial_screen);
|
||||
break;
|
||||
case PROP_INITIAL_MONITOR:
|
||||
g_value_set_int (value, private->initial_monitor);
|
||||
break;
|
||||
|
||||
case PROP_MENU_FACTORY:
|
||||
default:
|
||||
|
@ -1002,7 +1032,9 @@ GimpImageWindow *
|
|||
gimp_image_window_new (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpDialogFactory *dialog_factory)
|
||||
GimpDialogFactory *dialog_factory,
|
||||
GdkScreen *screen,
|
||||
gint monitor)
|
||||
{
|
||||
GimpImageWindow *window;
|
||||
|
||||
|
@ -1010,11 +1042,14 @@ gimp_image_window_new (Gimp *gimp,
|
|||
g_return_val_if_fail (GIMP_IS_IMAGE (image) || image == NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_MENU_FACTORY (menu_factory), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (dialog_factory), NULL);
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||
|
||||
window = g_object_new (GIMP_TYPE_IMAGE_WINDOW,
|
||||
"gimp", gimp,
|
||||
"menu-factory", menu_factory,
|
||||
"dialog-factory", dialog_factory,
|
||||
"initial-screen", screen,
|
||||
"initial-monitor", monitor,
|
||||
/* The window position will be overridden by the
|
||||
* dialog factory, it is only really used on first
|
||||
* startup.
|
||||
|
|
|
@ -48,7 +48,9 @@ GType gimp_image_window_get_type (void) G_GNUC_CONST;
|
|||
GimpImageWindow * gimp_image_window_new (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpDialogFactory *dialog_factory);
|
||||
GimpDialogFactory *dialog_factory,
|
||||
GdkScreen *screen,
|
||||
gint monitor);
|
||||
void gimp_image_window_destroy (GimpImageWindow *window);
|
||||
|
||||
GimpUIManager * gimp_image_window_get_ui_manager (GimpImageWindow *window);
|
||||
|
|
|
@ -416,11 +416,14 @@ file_open_with_display (Gimp *gimp,
|
|||
GimpProgress *progress,
|
||||
const gchar *uri,
|
||||
gboolean as_new,
|
||||
GObject *screen,
|
||||
gint monitor,
|
||||
GimpPDBStatusType *status,
|
||||
GError **error)
|
||||
{
|
||||
return file_open_with_proc_and_display (gimp, context, progress,
|
||||
uri, uri, as_new, NULL,
|
||||
screen, monitor,
|
||||
status, error);
|
||||
}
|
||||
|
||||
|
@ -432,6 +435,8 @@ file_open_with_proc_and_display (Gimp *gimp,
|
|||
const gchar *entered_filename,
|
||||
gboolean as_new,
|
||||
GimpPlugInProcedure *file_proc,
|
||||
GObject *screen,
|
||||
gint monitor,
|
||||
GimpPDBStatusType *status,
|
||||
GError **error)
|
||||
{
|
||||
|
@ -441,6 +446,7 @@ file_open_with_proc_and_display (Gimp *gimp,
|
|||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress), NULL);
|
||||
g_return_val_if_fail (screen == NULL || G_IS_OBJECT (screen), NULL);
|
||||
g_return_val_if_fail (status != NULL, NULL);
|
||||
|
||||
image = file_open_image (gimp, context, progress,
|
||||
|
@ -479,7 +485,8 @@ file_open_with_proc_and_display (Gimp *gimp,
|
|||
g_free (basename);
|
||||
}
|
||||
|
||||
if (gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0))
|
||||
if (gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
screen, monitor))
|
||||
{
|
||||
/* the display owns the image now */
|
||||
g_object_unref (image);
|
||||
|
@ -598,7 +605,10 @@ file_open_layers (Gimp *gimp,
|
|||
gboolean
|
||||
file_open_from_command_line (Gimp *gimp,
|
||||
const gchar *filename,
|
||||
gboolean as_new)
|
||||
gboolean as_new,
|
||||
GObject *screen,
|
||||
gint monitor)
|
||||
|
||||
{
|
||||
GError *error = NULL;
|
||||
gchar *uri;
|
||||
|
@ -606,6 +616,7 @@ file_open_from_command_line (Gimp *gimp,
|
|||
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), FALSE);
|
||||
g_return_val_if_fail (filename != NULL, FALSE);
|
||||
g_return_val_if_fail (screen == NULL || G_IS_OBJECT (screen), FALSE);
|
||||
|
||||
/* we accept URI or filename */
|
||||
uri = file_utils_any_to_uri (gimp, filename, &error);
|
||||
|
@ -627,6 +638,7 @@ file_open_from_command_line (Gimp *gimp,
|
|||
gimp_get_user_context (gimp),
|
||||
GIMP_PROGRESS (display),
|
||||
uri, as_new,
|
||||
screen, monitor,
|
||||
&status, &error);
|
||||
|
||||
if (image)
|
||||
|
|
|
@ -49,6 +49,8 @@ GimpImage * file_open_with_display (Gimp *gimp,
|
|||
GimpProgress *progress,
|
||||
const gchar *uri,
|
||||
gboolean as_new,
|
||||
GObject *screen,
|
||||
gint monitor,
|
||||
GimpPDBStatusType *status,
|
||||
GError **error);
|
||||
|
||||
|
@ -59,6 +61,8 @@ GimpImage * file_open_with_proc_and_display (Gimp *gimp,
|
|||
const gchar *entered_filename,
|
||||
gboolean as_new,
|
||||
GimpPlugInProcedure *file_proc,
|
||||
GObject *screen,
|
||||
gint monitor,
|
||||
GimpPDBStatusType *status,
|
||||
GError **error);
|
||||
|
||||
|
@ -75,7 +79,9 @@ GList * file_open_layers (Gimp *gimp,
|
|||
|
||||
gboolean file_open_from_command_line (Gimp *gimp,
|
||||
const gchar *filename,
|
||||
gboolean as_new);
|
||||
gboolean as_new,
|
||||
GObject *screen,
|
||||
gint monitor);
|
||||
|
||||
|
||||
#endif /* __FILE_OPEN_H__ */
|
||||
|
|
|
@ -265,7 +265,9 @@ gimp_dbus_service_open_idle (GimpDBusService *service)
|
|||
|
||||
if (data)
|
||||
{
|
||||
file_open_from_command_line (service->gimp, data->uri, data->as_new);
|
||||
file_open_from_command_line (service->gimp, data->uri, data->as_new,
|
||||
NULL, /* FIXME monitor */
|
||||
0 /* FIXME monitor */);
|
||||
|
||||
gimp_dbus_service_open_data_free (data);
|
||||
|
||||
|
|
|
@ -431,7 +431,9 @@ gimp_ui_configurer_separate_shells (GimpUIConfigurer *ui_configurer,
|
|||
new_image_window = gimp_image_window_new (ui_configurer->p->gimp,
|
||||
NULL,
|
||||
global_menu_factory,
|
||||
gimp_dialog_factory_get_singleton ());
|
||||
gimp_dialog_factory_get_singleton (),
|
||||
gtk_widget_get_screen (GTK_WIDGET (source_image_window)),
|
||||
gimp_widget_get_monitor (GTK_WIDGET (source_image_window)));
|
||||
/* Move the shell there */
|
||||
shell = gimp_image_window_get_shell (source_image_window, 1);
|
||||
|
||||
|
|
|
@ -104,7 +104,9 @@ static guint32 gui_display_get_window_id (GimpObject *display);
|
|||
static GimpObject * gui_display_create (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale);
|
||||
gdouble scale,
|
||||
GObject *screen,
|
||||
gint monitor);
|
||||
static void gui_display_delete (GimpObject *display);
|
||||
static void gui_displays_reconnect (Gimp *gimp,
|
||||
GimpImage *old_image,
|
||||
|
@ -340,11 +342,16 @@ static GimpObject *
|
|||
gui_display_create (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale)
|
||||
gdouble scale,
|
||||
GObject *screen,
|
||||
gint monitor)
|
||||
{
|
||||
GimpContext *context = gimp_get_user_context (gimp);
|
||||
GimpDisplay *display = GIMP_DISPLAY (gui_get_empty_display (gimp));
|
||||
|
||||
if (! screen)
|
||||
monitor = gimp_get_monitor_at_pointer ((GdkScreen **) &screen);
|
||||
|
||||
if (display)
|
||||
{
|
||||
gimp_display_fill (display, image, unit, scale);
|
||||
|
@ -358,7 +365,9 @@ gui_display_create (Gimp *gimp,
|
|||
display = gimp_display_new (gimp, image, unit, scale,
|
||||
global_menu_factory,
|
||||
image_managers->data,
|
||||
gimp_dialog_factory_get_singleton ());
|
||||
gimp_dialog_factory_get_singleton (),
|
||||
GDK_SCREEN (screen),
|
||||
monitor);
|
||||
}
|
||||
|
||||
if (gimp_context_get_display (context) == display)
|
||||
|
|
|
@ -572,10 +572,10 @@ gui_restore_after_callback (Gimp *gimp,
|
|||
GimpDisplayShell *shell;
|
||||
|
||||
/* create the empty display */
|
||||
display = GIMP_DISPLAY (gimp_create_display (gimp,
|
||||
NULL,
|
||||
GIMP_UNIT_PIXEL,
|
||||
1.0));
|
||||
display = GIMP_DISPLAY (gimp_create_display (gimp, NULL,
|
||||
GIMP_UNIT_PIXEL, 1.0,
|
||||
NULL, /* FIXME monitor */
|
||||
0 /* FIXME monitor */));
|
||||
|
||||
shell = gimp_display_get_shell (display);
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ display_new_invoker (GimpProcedure *procedure,
|
|||
{
|
||||
gimp_image_flush (image);
|
||||
|
||||
display = gimp_create_display (gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
display = gimp_create_display (gimp, image, GIMP_UNIT_PIXEL, 1.0, NULL, 0);
|
||||
|
||||
if (display)
|
||||
{
|
||||
|
|
|
@ -138,7 +138,8 @@ gimp_test_utils_create_image (Gimp *gimp,
|
|||
gimp_create_display (gimp,
|
||||
image,
|
||||
GIMP_UNIT_PIXEL,
|
||||
1.0 /*scale*/);
|
||||
1.0 /*scale*/,
|
||||
NULL, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -582,6 +582,8 @@ gimp_session_info_restore (GimpSessionInfo *info,
|
|||
monitor,
|
||||
info);
|
||||
}
|
||||
else
|
||||
g_printerr ("EEEEK\n");
|
||||
|
||||
if (GIMP_IS_SESSION_MANAGED (dialog) && info->p->aux_info)
|
||||
gimp_session_managed_set_aux_info (GIMP_SESSION_MANAGED (dialog),
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "gimpdnd.h"
|
||||
#include "gimptoolbox.h"
|
||||
#include "gimptoolbox-dnd.h"
|
||||
#include "gimpwidgets-utils.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
|
@ -158,7 +159,10 @@ gimp_toolbox_drop_uri_list (GtkWidget *widget,
|
|||
GError *error = NULL;
|
||||
|
||||
image = file_open_with_display (context->gimp, context, NULL,
|
||||
uri, FALSE, &status, &error);
|
||||
uri, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
{
|
||||
|
@ -189,7 +193,9 @@ gimp_toolbox_drop_drawable (GtkWidget *widget,
|
|||
|
||||
new_image = gimp_image_new_from_drawable (context->gimp,
|
||||
GIMP_DRAWABLE (viewable));
|
||||
gimp_create_display (context->gimp, new_image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (context->gimp, new_image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (new_image);
|
||||
}
|
||||
|
||||
|
@ -223,7 +229,9 @@ gimp_toolbox_drop_buffer (GtkWidget *widget,
|
|||
|
||||
image = gimp_image_new_from_buffer (context->gimp, NULL,
|
||||
GIMP_BUFFER (viewable));
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (image);
|
||||
}
|
||||
|
||||
|
@ -243,7 +251,9 @@ gimp_toolbox_drop_component (GtkWidget *widget,
|
|||
|
||||
new_image = gimp_image_new_from_component (context->gimp,
|
||||
image, component);
|
||||
gimp_create_display (new_image->gimp, new_image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (new_image->gimp, new_image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (new_image);
|
||||
}
|
||||
|
||||
|
@ -262,6 +272,8 @@ gimp_toolbox_drop_pixbuf (GtkWidget *widget,
|
|||
|
||||
new_image = gimp_image_new_from_pixbuf (context->gimp, pixbuf,
|
||||
_("Dropped Buffer"));
|
||||
gimp_create_display (new_image->gimp, new_image, GIMP_UNIT_PIXEL, 1.0);
|
||||
gimp_create_display (new_image->gimp, new_image, GIMP_UNIT_PIXEL, 1.0,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget));
|
||||
g_object_unref (new_image);
|
||||
}
|
||||
|
|
|
@ -445,7 +445,7 @@ gimp_toolbox_button_press_event (GtkWidget *widget,
|
|||
clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_PRIMARY);
|
||||
gtk_clipboard_request_text (clipboard,
|
||||
toolbox_paste_received,
|
||||
g_object_ref (toolbox->p->context));
|
||||
g_object_ref (toolbox));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -771,7 +771,8 @@ toolbox_paste_received (GtkClipboard *clipboard,
|
|||
const gchar *text,
|
||||
gpointer data)
|
||||
{
|
||||
GimpContext *context = GIMP_CONTEXT (data);
|
||||
GimpToolbox *toolbox = GIMP_TOOLBOX (data);
|
||||
GimpContext *context = toolbox->p->context;
|
||||
|
||||
if (text)
|
||||
{
|
||||
|
@ -787,12 +788,16 @@ toolbox_paste_received (GtkClipboard *clipboard,
|
|||
|
||||
if (strlen (copy))
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (toolbox);
|
||||
GimpImage *image;
|
||||
GimpPDBStatusType status;
|
||||
GError *error = NULL;
|
||||
|
||||
image = file_open_with_display (context->gimp, context, NULL,
|
||||
copy, FALSE, &status, &error);
|
||||
copy, FALSE,
|
||||
G_OBJECT (gtk_widget_get_screen (widget)),
|
||||
gimp_widget_get_monitor (widget),
|
||||
&status, &error);
|
||||
|
||||
if (! image && status != GIMP_PDB_CANCEL)
|
||||
{
|
||||
|
|
|
@ -73,7 +73,7 @@ HELP
|
|||
{
|
||||
gimp_image_flush (image);
|
||||
|
||||
display = gimp_create_display (gimp, image, GIMP_UNIT_PIXEL, 1.0);
|
||||
display = gimp_create_display (gimp, image, GIMP_UNIT_PIXEL, 1.0, NULL, 0);
|
||||
|
||||
if (display)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue