Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 19 additions & 39 deletions src/dtgtk/thumbnail.c
Original file line number Diff line number Diff line change
Expand Up @@ -1239,14 +1239,8 @@ static gboolean _event_box_enter_leave(GtkWidget *widget,
gpointer user_data)
{
dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data;
// if we leave for ancestor, that means we leave for blank thumbtable area
if(event->type == GDK_LEAVE_NOTIFY
&& event->detail == GDK_NOTIFY_ANCESTOR)
dt_control_set_mouse_over_id(NO_IMGID);

if(!thumb->mouse_over
&& event->type == GDK_ENTER_NOTIFY
&& !thumb->disable_mouseover)

if(event->type == GDK_ENTER_NOTIFY && !thumb->disable_mouseover)
dt_control_set_mouse_over_id(thumb->imgid);

_set_flag(widget, GTK_STATE_FLAG_PRELIGHT, (event->type == GDK_ENTER_NOTIFY));
Expand All @@ -1261,9 +1255,7 @@ static gboolean _event_image_enter_leave(GtkWidget *widget,
{
dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data;

// we ensure that the image has mouse over
if(!thumb->mouse_over && event->type == GDK_ENTER_NOTIFY
&& !thumb->disable_mouseover)
if(event->type == GDK_ENTER_NOTIFY && !thumb->disable_mouseover)
dt_control_set_mouse_over_id(thumb->imgid);

_set_flag(thumb->w_image_box, GTK_STATE_FLAG_PRELIGHT,
Expand All @@ -1277,23 +1269,25 @@ static gboolean _event_btn_enter_leave(GtkWidget *widget,
{
dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data;

darktable.control->element =
(event->type == GDK_ENTER_NOTIFY && widget == thumb->w_reject)
? DT_VIEW_REJECT
: -1;

// if we leave for ancestor, that means we leave for blank thumbtable area
if(event->type == GDK_LEAVE_NOTIFY
&& event->detail == GDK_NOTIFY_ANCESTOR)
dt_control_set_mouse_over_id(NO_IMGID);

if(thumb->disable_actions)
return TRUE;
if(event->type == GDK_ENTER_NOTIFY)
{
if(widget == thumb->w_reject)
darktable.control->element = DT_VIEW_REJECT;

if(thumb->disable_actions)
return TRUE;

if(!thumb->disable_mouseover)
dt_control_set_mouse_over_id(thumb->imgid);
_set_flag(thumb->w_image_box, GTK_STATE_FLAG_PRELIGHT, TRUE);
_thumb_update_tags_tooltip(thumb);
}
else if(event->type == GDK_LEAVE_NOTIFY)
{
if(widget == thumb->w_reject)
darktable.control->element = -1;
}

return FALSE;
}

Expand All @@ -1303,7 +1297,8 @@ static gboolean _event_star_enter(GtkWidget *widget,
{
dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data;
if(thumb->disable_actions) return TRUE;
if(!thumb->mouse_over && !thumb->disable_mouseover)

if(!thumb->disable_mouseover)
dt_control_set_mouse_over_id(thumb->imgid);

_set_flag(thumb->w_bottom_eb, GTK_STATE_FLAG_PRELIGHT, TRUE);
Expand All @@ -1328,10 +1323,6 @@ static gboolean _event_star_leave(GtkWidget *widget,
gpointer user_data)
{
dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data;
// if we leave for ancestor, that means we leave for blank thumbtable area
if(event->type == GDK_LEAVE_NOTIFY
&& event->detail == GDK_NOTIFY_ANCESTOR)
dt_control_set_mouse_over_id(NO_IMGID);

if(thumb->disable_actions) return TRUE;
for(int i = 0; i < MAX_STARS; i++)
Expand All @@ -1342,15 +1333,6 @@ static gboolean _event_star_leave(GtkWidget *widget,
return TRUE;
}

static gboolean _event_main_leave(GtkWidget *widget,
GdkEventCrossing *event,
gpointer user_data)
{
// if we leave for ancestor, that means we leave for blank thumbtable area
if(event->detail == GDK_NOTIFY_ANCESTOR) dt_control_set_mouse_over_id(NO_IMGID);
return FALSE;
}

// we only want to specify that the mouse is hovereing the thumbnail
static gboolean _event_main_drag_motion(GtkWidget *widget,
GdkDragContext *dc,
Expand Down Expand Up @@ -1422,8 +1404,6 @@ GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb,
gtk_widget_set_name(thumb->w_back, "thumb-back");
g_signal_connect(G_OBJECT(thumb->w_back), "motion-notify-event",
G_CALLBACK(_event_main_motion), thumb);
g_signal_connect(G_OBJECT(thumb->w_back), "leave-notify-event",
G_CALLBACK(_event_main_leave), thumb);
gtk_widget_show(thumb->w_back);
gtk_container_add(GTK_CONTAINER(thumb->w_main), thumb->w_back);

Expand Down
Loading