{
CollectTable *ct = data;
- info_window_new(NULL, collection_table_popup_file_list(ct));
+ info_window_new(NULL, collection_table_popup_file_list(ct), NULL);
}
static void collection_table_popup_copy_cb(GtkWidget *widget, gpointer data)
file_util_delete(NULL, collection_table_selection_get_list(cw->table), cw->window);
break;
case 'P': case 'p':
- info_window_new(NULL, collection_table_selection_get_list(cw->table));
+ info_window_new(NULL, collection_table_selection_get_list(cw->table), NULL);
break;
case 'S': case 's':
collection_dialog_save_as(NULL, cw->cd);
{
DupeWindow *dw = data;
- info_window_new(NULL, dupe_listview_get_selection(dw, dw->listview));
+ info_window_new(NULL, dupe_listview_get_selection(dw, dw->listview), NULL);
}
static void dupe_menu_collection_cb(GtkWidget *widget, gpointer data)
file_util_delete(NULL, dupe_listview_get_selection(dw, listview), dw->window);
break;
case 'P': case 'p':
- info_window_new(NULL, dupe_listview_get_selection(dw, listview));
+ info_window_new(NULL, dupe_listview_get_selection(dw, listview), NULL);
break;
default:
stop_signal = FALSE;
file_util_delete(image_get_fd(imd), NULL, imd->widget);
break;
case 'P': case 'p':
- info_window_new(image_get_fd(imd), NULL);
+ info_window_new(image_get_fd(imd), NULL, vw->fs ? vw->fs->window : NULL);
break;
case 'W': case 'w':
view_window_close(vw);
ViewWindow *vw = data;
ImageWindow *imd;
- if (vw->fs) view_fullscreen_toggle(vw, FALSE);
-
imd = view_window_active_image(vw);
- info_window_new(image_get_fd(imd), NULL);
+ info_window_new(image_get_fd(imd), NULL, vw->fs ? vw->fs->window : NULL);
}
static void view_wallpaper_cb(GtkWidget *widget, gpointer data)
g_free(id);
}
-void info_window_new(FileData *fd, GList *list)
+void info_window_new(FileData *fd, GList *list, GtkWidget *parent)
{
InfoData *id;
GtkWidget *main_vbox;
id->window = window_new(GTK_WINDOW_TOPLEVEL, "properties", NULL, NULL, _("Image properties"));
gtk_window_set_type_hint(GTK_WINDOW(id->window), GDK_WINDOW_TYPE_HINT_DIALOG);
-
+ id->parent = parent;
+ if (GTK_IS_WINDOW(id->parent)) {
+ gtk_window_set_keep_above(GTK_WINDOW(id->window), TRUE);
+#if 0
+ /* work, but behavior is not that great */
+ gtk_window_set_transient_for(GTK_WINDOW(id->window), GTK_WINDOW(id->parent));
+#endif
+ }
gtk_window_set_resizable(GTK_WINDOW(id->window), TRUE);
geometry.min_width = 32;
struct _InfoData
{
GtkWidget *window;
+ GtkWidget *parent;
+
ImageWindow *image;
GList *list;
};
-void info_window_new(FileData *fd, GList *list);
+void info_window_new(FileData *fd, GList *list, GtkWidget *parent);
GtkWidget *table_add_line(GtkWidget *table, gint x, gint y,
const gchar *description, const gchar *text);
file_util_delete(layout_image_get_fd(lw), NULL, widget);
break;
case 'P': case 'p':
- info_window_new(layout_image_get_fd(lw), NULL);
+ info_window_new(layout_image_get_fd(lw), NULL, NULL);
break;
case 'Q': case 'q':
exit_program();
{
LayoutWindow *lw = data;
- if (lw->full_screen) layout_image_full_screen_stop(lw);
- info_window_new(layout_image_get_fd(lw), NULL);
+ info_window_new(layout_image_get_fd(lw), NULL, lw->full_screen ? lw->full_screen->window : NULL);
}
static void li_pop_menu_new_cb(GtkWidget *widget, gpointer data)
list = layout_selection_list(lw);
if (!list) fd = layout_image_get_fd(lw);
- info_window_new(fd, list);
+ info_window_new(fd, list, NULL);
}
if (fd) file_util_delete(fd, NULL, GTK_WIDGET(pr));
break;
case 'P': case 'p':
- if (fd) info_window_new(fd, NULL);
+ if (fd) info_window_new(fd, NULL, NULL);
break;
case 'F': case 'f':
pan_search_toggle_visible(pw, TRUE);
FileData *fd;
fd = pan_menu_click_fd(pw);
- if (fd) info_window_new(fd, NULL);
+ if (fd) info_window_new(fd, NULL, NULL);
}
static void pan_zoom_in_cb(GtkWidget *widget, gpointer data)
{
SearchData *sd = data;
- info_window_new(NULL, search_result_selection_list(sd));
+ info_window_new(NULL, search_result_selection_list(sd), NULL);
}
static void sr_menu_collection_cb(GtkWidget *widget, gpointer data)
file_util_delete(NULL, search_result_selection_list(sd), widget);
break;
case 'P': case 'p':
- info_window_new(NULL, search_result_selection_list(sd));
+ info_window_new(NULL, search_result_selection_list(sd), NULL);
break;
case 'A': case 'a':
if (event->state & GDK_SHIFT_MASK)
{
ViewFileIcon *vfi = data;
- info_window_new(NULL, vficon_pop_menu_file_list(vfi));
+ info_window_new(NULL, vficon_pop_menu_file_list(vfi), NULL);
}
static void vficon_pop_menu_view_cb(GtkWidget *widget, gpointer data)
{
ViewFileList *vfl = data;
- info_window_new(NULL, vflist_pop_menu_file_list(vfl));
+ info_window_new(NULL, vflist_pop_menu_file_list(vfl), NULL);
}
static void vflist_pop_menu_view_cb(GtkWidget *widget, gpointer data)