mirror of https://github.com/GNOME/gimp.git
Issue #11071: Changed detailed_signal from "map" to "realize" to enable opening animations
This commit is contained in:
parent
4652022368
commit
702d5e1e80
|
@ -135,7 +135,7 @@ error_console_save_cmd_callback (GimpAction *action,
|
|||
gtk_window_present (GTK_WINDOW (console->file_dialog));
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (console->gimp, console->file_dialog, FALSE);
|
||||
gimp_window_set_title_bar_theme (console->gimp, console->file_dialog);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ gradients_save_as_pov_ray_cmd_callback (GimpAction *action,
|
|||
gtk_window_present (GTK_WINDOW (dialog));
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (context->gimp, dialog, FALSE);
|
||||
gimp_window_set_title_bar_theme (context->gimp, dialog);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,10 @@ typedef struct
|
|||
gboolean visible;
|
||||
} GimpAboutDialog;
|
||||
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
static void about_dialog_realize (GtkWidget *widget,
|
||||
GimpAboutDialog *dialog);
|
||||
#endif
|
||||
static void about_dialog_map (GtkWidget *widget,
|
||||
GimpAboutDialog *dialog);
|
||||
static void about_dialog_unmap (GtkWidget *widget,
|
||||
|
@ -166,7 +169,11 @@ about_dialog_create (Gimp *gimp,
|
|||
g_signal_connect (widget, "response",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
NULL);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (widget, "realize",
|
||||
G_CALLBACK (about_dialog_realize),
|
||||
&dialog);
|
||||
#endif
|
||||
g_signal_connect (widget, "map",
|
||||
G_CALLBACK (about_dialog_map),
|
||||
&dialog);
|
||||
|
@ -198,6 +205,15 @@ about_dialog_create (Gimp *gimp,
|
|||
return dialog.dialog;
|
||||
}
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
static void
|
||||
about_dialog_realize (GtkWidget *widget,
|
||||
GimpAboutDialog *dialog)
|
||||
{
|
||||
gimp_window_set_title_bar_theme (dialog->gimp, widget);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
about_dialog_map (GtkWidget *widget,
|
||||
GimpAboutDialog *dialog)
|
||||
|
@ -215,10 +231,6 @@ about_dialog_map (GtkWidget *widget,
|
|||
|
||||
dialog->timer = g_timeout_add (800, about_dialog_timer, dialog);
|
||||
}
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (dialog->gimp, widget, FALSE);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -45,9 +45,10 @@ struct _VectorsExportDialog
|
|||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static void vectors_export_dialog_map (GtkWidget *dialog,
|
||||
#ifdef G_OS_WIN32
|
||||
static void vectors_export_dialog_realize (GtkWidget *dialog,
|
||||
VectorsExportDialog *data);
|
||||
#endif
|
||||
static void vectors_export_dialog_free (VectorsExportDialog *private);
|
||||
static void vectors_export_dialog_response (GtkWidget *widget,
|
||||
gint response_id,
|
||||
|
@ -115,8 +116,8 @@ vectors_export_dialog_new (GimpImage *image,
|
|||
dialog, 0);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (dialog, "map",
|
||||
G_CALLBACK (vectors_export_dialog_map),
|
||||
g_signal_connect (dialog, "realize",
|
||||
G_CALLBACK (vectors_export_dialog_realize),
|
||||
private);
|
||||
#endif
|
||||
g_signal_connect (dialog, "delete-event",
|
||||
|
@ -144,14 +145,14 @@ vectors_export_dialog_new (GimpImage *image,
|
|||
|
||||
/* private functions */
|
||||
|
||||
static void
|
||||
vectors_export_dialog_map (GtkWidget *dialog,
|
||||
VectorsExportDialog *data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (data->image->gimp, dialog, FALSE);
|
||||
#endif
|
||||
static void
|
||||
vectors_export_dialog_realize (GtkWidget *dialog,
|
||||
VectorsExportDialog *data)
|
||||
{
|
||||
gimp_window_set_title_bar_theme (data->image->gimp, dialog);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
vectors_export_dialog_free (VectorsExportDialog *private)
|
||||
|
|
|
@ -46,9 +46,10 @@ struct _VectorsImportDialog
|
|||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static void vectors_import_dialog_map (GtkWidget *dialog,
|
||||
#ifdef G_OS_WIN32
|
||||
static void vectors_import_dialog_realize (GtkWidget *dialog,
|
||||
VectorsImportDialog *data);
|
||||
#endif
|
||||
static void vectors_import_dialog_free (VectorsImportDialog *private);
|
||||
static void vectors_import_dialog_response (GtkWidget *dialog,
|
||||
gint response_id,
|
||||
|
@ -117,8 +118,8 @@ vectors_import_dialog_new (GimpImage *image,
|
|||
dialog, 0);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (dialog, "map",
|
||||
G_CALLBACK (vectors_import_dialog_map),
|
||||
g_signal_connect (dialog, "realize",
|
||||
G_CALLBACK (vectors_import_dialog_realize),
|
||||
private);
|
||||
#endif
|
||||
g_signal_connect (dialog, "delete-event",
|
||||
|
@ -173,14 +174,14 @@ vectors_import_dialog_new (GimpImage *image,
|
|||
|
||||
/* private functions */
|
||||
|
||||
static void
|
||||
vectors_import_dialog_map (GtkWidget *dialog,
|
||||
VectorsImportDialog *data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (data->image->gimp, dialog, FALSE);
|
||||
#endif
|
||||
static void
|
||||
vectors_import_dialog_realize (GtkWidget *dialog,
|
||||
VectorsImportDialog *data)
|
||||
{
|
||||
gimp_window_set_title_bar_theme (data->image->gimp, dialog);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
vectors_import_dialog_free (VectorsImportDialog *private)
|
||||
|
|
|
@ -678,10 +678,10 @@ themes_theme_paths_notify (GimpExtensionManager *manager,
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
void
|
||||
themes_set_title_bar (Gimp *gimp)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
GList *windows = gimp_get_image_windows (gimp);
|
||||
GList *iter;
|
||||
|
||||
|
@ -689,10 +689,10 @@ themes_set_title_bar (Gimp *gimp)
|
|||
{
|
||||
GtkWidget *window = GTK_WIDGET (windows->data);
|
||||
|
||||
gimp_window_set_title_bar_theme (gimp, window, TRUE);
|
||||
gimp_window_set_title_bar_theme (gimp, window);
|
||||
}
|
||||
|
||||
if (windows)
|
||||
g_list_free (windows);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -29,7 +29,8 @@ GFile * themes_get_theme_dir (Gimp *gimp,
|
|||
GFile * themes_get_theme_file (Gimp *gimp,
|
||||
const gchar *first_component,
|
||||
...) G_GNUC_NULL_TERMINATED;
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
void themes_set_title_bar (Gimp *gimp);
|
||||
#endif
|
||||
|
||||
#endif /* __THEMES_H__ */
|
||||
|
|
|
@ -86,8 +86,10 @@ static gboolean gimp_file_dialog_delete_event (GtkWidget *w
|
|||
GdkEventAny *event);
|
||||
static void gimp_file_dialog_response (GtkDialog *dialog,
|
||||
gint response_id);
|
||||
static void gimp_file_dialog_map (GimpFileDialog *dialog,
|
||||
#ifdef G_OS_WIN32
|
||||
static void gimp_file_dialog_realize (GimpFileDialog *dialog,
|
||||
gpointer data);
|
||||
#endif
|
||||
static GFile * gimp_file_dialog_real_get_default_folder (GimpFileDialog *dialog);
|
||||
static void gimp_file_dialog_real_save_state (GimpFileDialog *dialog,
|
||||
const gchar *state_name);
|
||||
|
@ -228,8 +230,8 @@ static void
|
|||
gimp_file_dialog_init (GimpFileDialog *dialog)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (dialog, "map",
|
||||
G_CALLBACK (gimp_file_dialog_map),
|
||||
g_signal_connect (dialog, "realize",
|
||||
G_CALLBACK (gimp_file_dialog_realize),
|
||||
NULL);
|
||||
#endif
|
||||
}
|
||||
|
@ -427,14 +429,14 @@ gimp_file_dialog_response (GtkDialog *dialog,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_file_dialog_map (GimpFileDialog *dialog,
|
||||
gpointer data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
gimp_window_set_title_bar_theme (dialog->gimp, GTK_WIDGET (dialog), FALSE);
|
||||
#endif
|
||||
static void
|
||||
gimp_file_dialog_realize (GimpFileDialog *dialog,
|
||||
gpointer data)
|
||||
{
|
||||
gimp_window_set_title_bar_theme (dialog->gimp, GTK_WIDGET (dialog));
|
||||
}
|
||||
#endif
|
||||
|
||||
static GFile *
|
||||
gimp_file_dialog_real_get_default_folder (GimpFileDialog *dialog)
|
||||
|
|
|
@ -108,9 +108,10 @@ static void gimp_icon_picker_menu_paste (GtkWidget *widget,
|
|||
static void gimp_icon_picker_menu_copy (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data);
|
||||
|
||||
static void gimp_icon_picker_dialog_map (GtkWidget *dialog,
|
||||
#ifdef G_OS_WIN32
|
||||
static void gimp_icon_picker_dialog_realize (GtkWidget *dialog,
|
||||
gpointer *data);
|
||||
#endif
|
||||
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GimpIconPicker, gimp_icon_picker, GTK_TYPE_BOX)
|
||||
|
@ -495,8 +496,8 @@ gimp_icon_picker_menu_from_file (GtkWidget *widget,
|
|||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (dialog, "map",
|
||||
G_CALLBACK (gimp_icon_picker_dialog_map),
|
||||
g_signal_connect (dialog, "realize",
|
||||
G_CALLBACK (gimp_icon_picker_dialog_realize),
|
||||
picker);
|
||||
#endif
|
||||
|
||||
|
@ -616,14 +617,14 @@ gimp_icon_picker_menu_from_name (GtkWidget *widget,
|
|||
gimp_popup_show (GIMP_POPUP (popup), GTK_WIDGET (picker));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_icon_picker_dialog_map (GtkWidget *dialog,
|
||||
gpointer *data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
static void
|
||||
gimp_icon_picker_dialog_realize (GtkWidget *dialog,
|
||||
gpointer *data)
|
||||
{
|
||||
GimpIconPicker *picker = GIMP_ICON_PICKER (data);
|
||||
GimpIconPickerPrivate *private = GET_PRIVATE (picker);
|
||||
|
||||
gimp_window_set_title_bar_theme (private->gimp, dialog, FALSE);
|
||||
#endif
|
||||
gimp_window_set_title_bar_theme (private->gimp, dialog);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -86,9 +86,10 @@ static void gimp_search_popup_get_property (GObject *obj
|
|||
|
||||
static void gimp_search_popup_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
static void gimp_search_popup_map (GimpSearchPopup *search_popup,
|
||||
#ifdef G_OS_WIN32
|
||||
static void gimp_search_popup_realize (GimpSearchPopup *search_popup,
|
||||
gpointer data);
|
||||
|
||||
#endif
|
||||
static void gimp_search_popup_confirm (GimpPopup *popup);
|
||||
|
||||
/* Signal handlers on the search entry */
|
||||
|
@ -178,8 +179,8 @@ gimp_search_popup_init (GimpSearchPopup *search_popup)
|
|||
search_popup->priv = gimp_search_popup_get_instance_private (search_popup);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (search_popup, "map",
|
||||
G_CALLBACK (gimp_search_popup_map),
|
||||
g_signal_connect (search_popup, "realize",
|
||||
G_CALLBACK (gimp_search_popup_realize),
|
||||
NULL);
|
||||
#endif
|
||||
}
|
||||
|
@ -540,23 +541,22 @@ gimp_search_popup_size_allocate (GtkWidget *widget,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_search_popup_map (GimpSearchPopup *search_popup,
|
||||
gpointer data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
static void
|
||||
gimp_search_popup_realize (GimpSearchPopup *search_popup,
|
||||
gpointer data)
|
||||
{
|
||||
/* Since this popup is initially modal to the main window,
|
||||
* toggling the visibility of the GdkWindow causes odd
|
||||
* behavior. Instead, we change the opacity on launch to
|
||||
* refresh the titlebar theme */
|
||||
gimp_window_set_title_bar_theme (search_popup->priv->gimp,
|
||||
GTK_WIDGET (search_popup),
|
||||
TRUE);
|
||||
GTK_WIDGET (search_popup));
|
||||
|
||||
gtk_widget_set_opacity (GTK_WIDGET (search_popup), 0);
|
||||
gtk_widget_set_opacity (GTK_WIDGET (search_popup), 1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
gimp_search_popup_confirm (GimpPopup *popup)
|
||||
|
|
|
@ -138,8 +138,10 @@ static void gimp_settings_box_file_dialog (GimpSettingsBox *box,
|
|||
static void gimp_settings_box_file_response (GtkWidget *dialog,
|
||||
gint response_id,
|
||||
GimpSettingsBox *box);
|
||||
static void gimp_settings_box_dialog_map (GtkWidget *dialog,
|
||||
#ifdef G_OS_WIN32
|
||||
static void gimp_settings_box_dialog_realize (GtkWidget *dialog,
|
||||
gpointer *data);
|
||||
#endif
|
||||
static void gimp_settings_box_toplevel_unmap (GtkWidget *toplevel,
|
||||
GtkWidget *dialog);
|
||||
static void gimp_settings_box_truncate_list (GimpSettingsBox *box,
|
||||
|
@ -740,8 +742,8 @@ gimp_settings_box_file_dialog (GimpSettingsBox *box,
|
|||
TRUE);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (dialog, "map",
|
||||
G_CALLBACK (gimp_settings_box_dialog_map),
|
||||
g_signal_connect (dialog, "realize",
|
||||
G_CALLBACK (gimp_settings_box_dialog_realize),
|
||||
box);
|
||||
#endif
|
||||
g_signal_connect (dialog, "response",
|
||||
|
@ -832,17 +834,17 @@ gimp_settings_box_file_response (GtkWidget *dialog,
|
|||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_settings_box_dialog_map (GtkWidget *dialog,
|
||||
gpointer *data)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
static void
|
||||
gimp_settings_box_dialog_realize (GtkWidget *dialog,
|
||||
gpointer *data)
|
||||
{
|
||||
GimpSettingsBox *box = (GimpSettingsBox *) data;
|
||||
GimpSettingsBoxPrivate *private = GET_PRIVATE (box);
|
||||
|
||||
gimp_window_set_title_bar_theme (private->gimp, dialog, FALSE);
|
||||
#endif
|
||||
gimp_window_set_title_bar_theme (private->gimp, dialog);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
gimp_settings_box_toplevel_unmap (GtkWidget *toplevel,
|
||||
|
|
|
@ -2651,12 +2651,11 @@ gimp_window_set_transient_cb (GtkWidget *window,
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
void
|
||||
gimp_window_set_title_bar_theme (Gimp *gimp,
|
||||
GtkWidget *dialog,
|
||||
gboolean is_main_window)
|
||||
GtkWidget *dialog)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
HWND hwnd;
|
||||
GdkWindow *window = NULL;
|
||||
gboolean use_dark_mode = FALSE;
|
||||
|
@ -2696,13 +2695,6 @@ gimp_window_set_title_bar_theme (Gimp *gimp,
|
|||
hwnd = (HWND) gdk_win32_window_get_handle (window);
|
||||
DwmSetWindowAttribute (hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE,
|
||||
&use_dark_mode, sizeof (use_dark_mode));
|
||||
|
||||
if (! is_main_window)
|
||||
{
|
||||
/* Toggle the window's visibility so the title bar change appears */
|
||||
gdk_window_hide (window);
|
||||
gdk_window_show (window);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -164,10 +164,9 @@ gboolean gimp_utils_are_menu_path_identical (const gchar *path1
|
|||
gchar **canonical_path1,
|
||||
gchar **mnemonic_path1,
|
||||
gchar **path1_section_name);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
void gimp_window_set_title_bar_theme (Gimp *gimp,
|
||||
GtkWidget *dialog,
|
||||
gboolean is_main_window);
|
||||
|
||||
GtkWidget *dialog);
|
||||
#endif
|
||||
|
||||
#endif /* __APP_GIMP_WIDGETS_UTILS_H__ */
|
||||
|
|
|
@ -174,7 +174,7 @@ gimp_dialog_init (GimpDialog *dialog)
|
|||
NULL);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_signal_connect (GTK_WIDGET (dialog), "map",
|
||||
g_signal_connect (GTK_WIDGET (dialog), "realize",
|
||||
G_CALLBACK (gimp_dialog_set_title_bar_theme),
|
||||
NULL);
|
||||
#endif
|
||||
|
@ -806,11 +806,6 @@ gimp_dialog_set_title_bar_theme (GtkWidget *dialog)
|
|||
DwmSetWindowAttribute (hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE,
|
||||
&use_dark_mode, sizeof (use_dark_mode));
|
||||
UpdateWindow (hwnd);
|
||||
ShowWindow (hwnd, 5);
|
||||
|
||||
/* Toggle the window's visibility so the title bar change appears */
|
||||
gdk_window_hide (window);
|
||||
gdk_window_show (window);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue