gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column);
}
+static void advanced_exif_window_get_geometry(ExifWin *ew)
+{
+ GdkWindow *window;
+ LayoutWindow *lw = NULL;
+
+ layout_valid(&lw);
+
+ if (!ew || !lw) return;
+
+ window = gtk_widget_get_window(ew->window);
+ gdk_window_get_position(window, &lw->options.advanced_exif_window.x, &lw->options.advanced_exif_window.y);
+ lw->options.advanced_exif_window.w = gdk_window_get_width(window);
+ lw->options.advanced_exif_window.h = gdk_window_get_height(window);
+}
+
void advanced_exif_close(ExifWin *ew)
{
if (!ew) return;
+ advanced_exif_window_get_geometry(ew);
+
gtk_widget_destroy(ew->window);
}
-static void advanced_exif_destroy(GtkWidget *widget, gpointer data)
+static void advanced_exif_delete_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
{
ExifWin *ew = data;
+
+ advanced_exif_window_get_geometry(ew);
+
file_data_unref(ew->fd);
g_free(ew);
}
return stop_signal;
} // static gboolean advanced_exif_...
-GtkWidget *advanced_exif_new(void)
+GtkWidget *advanced_exif_new(LayoutWindow *lw)
{
ExifWin *ew;
GtkListStore *store;
gtk_window_set_resizable(GTK_WINDOW(ew->window), TRUE);
+ gtk_window_resize(GTK_WINDOW(ew->window), lw->options.advanced_exif_window.w, lw->options.advanced_exif_window.h);
+ if (lw->options.advanced_exif_window.x != 0 && lw->options.advanced_exif_window.y != 0)
+ {
+ gtk_window_move(GTK_WINDOW(ew->window), lw->options.advanced_exif_window.x, lw->options.advanced_exif_window.y);
+ }
+
g_object_set_data(G_OBJECT(ew->window), "advanced_exif_data", ew);
- g_signal_connect_after(G_OBJECT(ew->window), "destroy",
- G_CALLBACK(advanced_exif_destroy), ew);
+ g_signal_connect(G_OBJECT(ew->window), "delete_event", G_CALLBACK(advanced_exif_delete_cb), ew);
ew->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
gtk_container_add(GTK_CONTAINER(ew->window), ew->vbox);
#define ADVANCED_EXIF_H
-GtkWidget *advanced_exif_new(void);
+GtkWidget *advanced_exif_new(LayoutWindow *lw);
void advanced_exif_set_fd(GtkWidget *bar, FileData *fd);
WRITE_NL(); WRITE_INT(*layout, dupe_window.y);
WRITE_NL(); WRITE_INT(*layout, dupe_window.w);
WRITE_NL(); WRITE_INT(*layout, dupe_window.h);
+
+ WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.x);
+ WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.y);
+ WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.w);
+ WRITE_NL(); WRITE_INT(*layout, advanced_exif_window.h);
WRITE_SEPARATOR();
WRITE_NL(); WRITE_BOOL(*layout, animate);
if (READ_INT(*layout, dupe_window.w)) continue;
if (READ_INT(*layout, dupe_window.h)) continue;
+ if (READ_INT(*layout, advanced_exif_window.x)) continue;
+ if (READ_INT(*layout, advanced_exif_window.y)) continue;
+ if (READ_INT(*layout, advanced_exif_window.w)) continue;
+ if (READ_INT(*layout, advanced_exif_window.h)) continue;
+
if (READ_BOOL(*layout, animate)) continue;
if (READ_INT(*layout, workspace)) continue;
{
if (lw->exif_window) return;
- lw->exif_window = advanced_exif_new();
+ lw->exif_window = advanced_exif_new(lw);
if (!lw->exif_window) return;
g_signal_connect(G_OBJECT(lw->exif_window), "destroy",
G_CALLBACK(layout_exif_window_destroy), lw);
options->search_window.h = 650;
options->search_window.x = 100;
options->search_window.y = 100;
+ options->advanced_exif_window.w = 900;
+ options->advanced_exif_window.h = 600;
+ options->advanced_exif_window.x = 0;
+ options->advanced_exif_window.y = 0;
options->folder_window.vdivider_pos = 100;
options->order = g_strdup("123");
options->show_directory_date = FALSE;
gint y;
} dupe_window;
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ } advanced_exif_window;
+
gboolean tools_float;
gboolean tools_hidden;
gboolean toolbar_hidden;