File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -209,13 +209,17 @@ static void event_mouse_exited(void* context) {
209
209
wid ,
210
210
& window );
211
211
212
- if (bar_item
213
- && bar_item -> update_mask & UPDATE_EXITED_GLOBAL
214
- && bar_manager_get_popup_by_point (& g_bar_manager , point )
215
- == & bar_item -> popup ) {
216
- return ;
212
+ if (!bar_item || !(bar_item -> update_mask & UPDATE_EXITED_GLOBAL )
213
+ || (bar_manager_get_bar_by_point (& g_bar_manager , point )
214
+ && bar_manager_get_popup_by_point (& g_bar_manager , point )
215
+ != & bar_item -> popup )) {
216
+ CGRect window_rect = window ? window -> frame : CGRectNull ;
217
+ window_rect .origin = window ? window -> origin : CGPointZero ;
218
+ window_rect = CGRectInset (window_rect , 1 , 1 );
219
+ if (!CGRectContainsPoint (window_rect , point )) {
220
+ bar_manager_handle_mouse_exited (& g_bar_manager , bar_item );
221
+ }
217
222
}
218
- bar_manager_handle_mouse_exited (& g_bar_manager , bar_item );
219
223
}
220
224
221
225
#define SCROLL_TIMEOUT 150000000
You can’t perform that action at this time.
0 commit comments