#include "pixbuf-renderer.h"
#include "pixbuf-util.h"
#include "ui-fileops.h"
+#include "ui-misc.h"
#include "filecache.h"
#include <cmath>
}
}
+static void image_release_cb(PixbufRenderer *, GdkEventButton *event, gpointer data)
+{
+ auto imd = static_cast<ImageWindow *>(data);
+ LayoutWindow *lw;
+
+ lw = layout_find_by_image(imd);
+ if (!lw)
+ {
+ layout_valid(&lw);
+ }
+
+ defined_mouse_buttons(NULL, event, lw);
+}
+
static void image_drag_cb(PixbufRenderer *pr, GdkEventMotion *event, gpointer data)
{
auto imd = static_cast<ImageWindow *>(data);
G_CALLBACK(image_click_cb), imd);
g_signal_connect(G_OBJECT(imd->pr), "button_press_event",
G_CALLBACK(image_press_cb), imd);
+ g_signal_connect(G_OBJECT(imd->pr), "button_release_event",
+ G_CALLBACK(image_release_cb), imd);
g_signal_connect(G_OBJECT(imd->pr), "scroll_notify",
G_CALLBACK(image_scroll_notify_cb), imd);
return layout_new_with_geometry(dir_fd, lop, nullptr);
}
-gboolean release_cb(GtkWidget *widget, GdkEventButton *event, gpointer data)
-{
- return defined_mouse_buttons(widget, event, data);
-}
-
static gboolean move_window_to_workspace_cb(gpointer data)
{
#ifdef GDK_WINDOWING_X11
gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
- g_signal_connect(G_OBJECT(lw->window), "button_release_event", G_CALLBACK(release_cb), lw);
-
if (options->save_window_positions)
{
hint_mask = GDK_HINT_USER_POS;