Lines Matching refs:fw

81 void _focus_set(Window w, FvwmWindow *fw)  in _focus_set()  argument
83 Scr.focus_in_requested_window = fw; in _focus_set()
124 static void __try_program_focus(Window w, const FvwmWindow *fw) in __try_program_focus() argument
126 if (fw && WM_TAKES_FOCUS(fw) && in __try_program_focus()
127 FP_DO_FOCUS_BY_PROGRAM(FW_FOCUS_POLICY(fw))) in __try_program_focus()
136 Window w, FvwmWindow *fw) in __try_forbid_user_focus() argument
138 if (fw == NULL || in __try_forbid_user_focus()
139 fpol_query_allow_user_focus(&FW_FOCUS_POLICY(fw)) == True) in __try_forbid_user_focus()
143 if (WM_TAKES_FOCUS(fw)) in __try_forbid_user_focus()
146 __try_program_focus(w, fw); in __try_forbid_user_focus()
153 fw, PART_ALL, False, False, CLEAR_ALL, NULL, NULL); in __try_forbid_user_focus()
160 Window w, FvwmWindow *fw, fpol_set_focus_by_t set_by) in __check_allow_focus() argument
165 if (fw == NULL || set_by == FOCUS_SET_FORCE) in __check_allow_focus()
170 m = fw->m; in __check_allow_focus()
172 if (!FP_IS_LENIENT(FW_FOCUS_POLICY(fw)) && in __check_allow_focus()
173 !focus_does_accept_input_focus(fw) && in __check_allow_focus()
179 if (fpol_query_allow_set_focus(&FW_FOCUS_POLICY(fw), set_by)) in __check_allow_focus()
187 FvwmWindow *fw, fpol_set_focus_by_t set_by, in __update_windowlist() argument
191 if (fw == NULL || focus_is_focused(fw) || fw == &Scr.FvwmRoot || in __update_windowlist()
192 IS_SCHEDULED_FOR_DESTROY(fw)) in __update_windowlist()
199 (FP_DO_SORT_WINDOWLIST_BY(FW_FOCUS_POLICY(fw)) == in __update_windowlist()
207 for (fw2 = &Scr.FvwmRoot; fw2 && fw2 != fw; fw2 = fw2->next) in __update_windowlist()
225 Scr.FvwmRoot.next = fw; in __update_windowlist()
227 fw->prev->next = NULL; in __update_windowlist()
228 fw->prev = &Scr.FvwmRoot; in __update_windowlist()
235 if (fw->prev) in __update_windowlist()
237 fw->prev->next = fw->next; in __update_windowlist()
239 if (fw->next) in __update_windowlist()
241 fw->next->prev = fw->prev; in __update_windowlist()
244 fw->next = Scr.FvwmRoot.next; in __update_windowlist()
247 Scr.FvwmRoot.next->prev = fw; in __update_windowlist()
249 Scr.FvwmRoot.next = fw; in __update_windowlist()
250 fw->prev = &Scr.FvwmRoot; in __update_windowlist()
256 static Bool __try_other_screen_focus(const FvwmWindow *fw) in __try_other_screen_focus() argument
258 if (fw == NULL && !Scr.flags.is_pointer_on_this_screen) in __try_other_screen_focus()
281 Window w, FvwmWindow *fw, sftfwin_args_t *args) in __set_focus_to_fwin() argument
286 if (__try_forbid_user_focus(w, fw) == True) in __set_focus_to_fwin()
290 __try_program_focus(w, fw); in __set_focus_to_fwin()
291 if (__check_allow_focus(w, fw, args->set_by) == False) in __set_focus_to_fwin()
295 __update_windowlist(fw, args->set_by, args->is_focus_by_flip_focus_cmd); in __set_focus_to_fwin()
296 if (__try_other_screen_focus(fw) == True) in __set_focus_to_fwin()
301 if (fw && !args->do_forbid_warp) in __set_focus_to_fwin()
303 if (IS_ICONIFIED(fw)) in __set_focus_to_fwin()
308 rc = get_visible_icon_geometry(fw, &r); in __set_focus_to_fwin()
309 if (!rc || !IsRectangleOnThisPage(fw->m, &r, fw->Desk)) in __set_focus_to_fwin()
311 fw = NULL; in __set_focus_to_fwin()
315 else if (!IsRectangleOnThisPage(fw->m, &(fw->g.frame), fw->Desk)) in __set_focus_to_fwin()
317 fw = NULL; in __set_focus_to_fwin()
323 if (fw == NULL) in __set_focus_to_fwin()
332 m = fw->m; in __set_focus_to_fwin()
336 if (IS_ICONIFIED(fw)) in __set_focus_to_fwin()
340 if (FW_W_ICON_TITLE(fw)) in __set_focus_to_fwin()
342 w = FW_W_ICON_TITLE(fw); in __set_focus_to_fwin()
345 if ((!is_window_selected || WAS_ICON_HINT_PROVIDED(fw)) && in __set_focus_to_fwin()
346 FW_W_ICON_PIXMAP(fw)) in __set_focus_to_fwin()
348 w = FW_W_ICON_PIXMAP(fw); in __set_focus_to_fwin()
352 if (FP_IS_LENIENT(FW_FOCUS_POLICY(fw))) in __set_focus_to_fwin()
354 FOCUS_SET(w, fw); in __set_focus_to_fwin()
355 set_focus_window(fw); in __set_focus_to_fwin()
358 SET_FOCUS_CHANGE_BROADCAST_PENDING(fw, 1); in __set_focus_to_fwin()
362 else if (focus_does_accept_input_focus(fw)) in __set_focus_to_fwin()
373 FOCUS_SET(w, fw); in __set_focus_to_fwin()
374 set_focus_window(fw); in __set_focus_to_fwin()
375 if (fw) in __set_focus_to_fwin()
379 SET_FOCUS_CHANGE_BROADCAST_PENDING(fw, 1); in __set_focus_to_fwin()
399 Window w, FvwmWindow *fw, sftfwin_args_t *args) in set_focus_to_fwin() argument
404 if (!args->do_force && fw == sf) in set_focus_to_fwin()
409 __set_focus_to_fwin(w, fw, args); in set_focus_to_fwin()
414 focus_grab_buttons_client_entered(fw); in set_focus_to_fwin()
418 focus_grab_buttons(fw); in set_focus_to_fwin()
421 if (fw != get_focus_window()) in set_focus_to_fwin()
448 FvwmWindow *t = exc->w.fw; in warp_to_fvwm_window()
561 static Bool focus_query_grab_buttons(FvwmWindow *fw, Bool client_entered) in focus_query_grab_buttons() argument
565 struct monitor *m = fw->m; in focus_query_grab_buttons()
567 if (fw->Desk != m->virtual_scr.CurrentDesk || IS_ICONIFIED(fw)) in focus_query_grab_buttons()
571 is_focused = focus_is_focused(fw); in focus_query_grab_buttons()
572 if (!is_focused && FP_DO_FOCUS_CLICK_CLIENT(FW_FOCUS_POLICY(fw))) in focus_query_grab_buttons()
576 if (is_on_top_of_layer_and_above_unmanaged(fw)) in focus_query_grab_buttons()
582 flag = FP_DO_RAISE_FOCUSED_CLIENT_CLICK(FW_FOCUS_POLICY(fw)); in focus_query_grab_buttons()
586 flag = FP_DO_RAISE_UNFOCUSED_CLIENT_CLICK(FW_FOCUS_POLICY(fw)); in focus_query_grab_buttons()
593 const FvwmWindow *fw, Bool do_skip_marked_transients) in __restore_focus_after_unmap() argument
598 t = get_transientfor_fvwmwindow(fw); in __restore_focus_after_unmap()
600 FP_DO_RELEASE_FOCUS_TRANSIENT(FW_FOCUS_POLICY(fw)) && in __restore_focus_after_unmap()
602 t->Desk == fw->Desk && in __restore_focus_after_unmap()
607 else if (t == NULL && FP_DO_RELEASE_FOCUS(FW_FOCUS_POLICY(fw))) in __restore_focus_after_unmap()
609 for (t = fw->next; t != NULL && set_focus_to == NULL; in __restore_focus_after_unmap()
614 t->Desk == fw->Desk && !DO_SKIP_CIRCULATE(t) && in __restore_focus_after_unmap()
626 if (set_focus_to && set_focus_to != fw && in __restore_focus_after_unmap()
627 set_focus_to->Desk == fw->Desk) in __restore_focus_after_unmap()
632 if (focus_is_focused(fw)) in __restore_focus_after_unmap()
652 FvwmWindow * const fw = exc->w.fw; in __activate_window_by_command() local
660 if (fw == NULL || !FP_DO_FOCUS_BY_FUNCTION(FW_FOCUS_POLICY(fw))) in __activate_window_by_command()
663 if (fw) in __activate_window_by_command()
668 set_focus_to_fwin(FW_W(fw), fw, &sf_args); in __activate_window_by_command()
673 m = fw->m; in __activate_window_by_command()
678 if (fw->Desk != m->virtual_scr.CurrentDesk) in __activate_window_by_command()
680 goto_desk(fw->Desk, m); in __activate_window_by_command()
682 if (IS_ICONIFIED(fw)) in __activate_window_by_command()
687 rc = get_visible_icon_title_geometry(fw, &g); in __activate_window_by_command()
690 get_visible_icon_picture_geometry(fw, &g); in __activate_window_by_command()
697 cx = fw->g.frame.x + fw->g.frame.width/2; in __activate_window_by_command()
698 cy = fw->g.frame.y + fw->g.frame.height/2; in __activate_window_by_command()
715 if (fw->g.frame.x + fw->g.frame.width < 0 || in __activate_window_by_command()
716 fw->g.frame.y + fw->g.frame.height < 0 || in __activate_window_by_command()
717 fw->g.frame.x >= Scr.MyDisplayWidth || in __activate_window_by_command()
718 fw->g.frame.y >= Scr.MyDisplayHeight) in __activate_window_by_command()
721 fw, 0, 0, fw->g.frame.width, in __activate_window_by_command()
722 fw->g.frame.height, False); in __activate_window_by_command()
725 FW_FOCUS_POLICY(fw))) in __activate_window_by_command()
743 set_focus_to_fwin(FW_W(fw), fw, &sf_args); in __activate_window_by_command()
756 FvwmWindow *fw, int button, int grab_buttons) in __focus_grab_one_button() argument
761 if ((do_grab & (1 << button)) == (fw->grabbed_buttons & (1 << button))) in __focus_grab_one_button()
768 dpy, button + 1, AnyModifier, FW_W_PARENT(fw), True, in __focus_grab_one_button()
772 fw->grabbed_buttons |= (1 << button); in __focus_grab_one_button()
776 XUngrabButton(dpy, button + 1, AnyModifier, FW_W_PARENT(fw)); in __focus_grab_one_button()
777 fw->grabbed_buttons &= ~(1 << button); in __focus_grab_one_button()
785 Bool focus_does_accept_input_focus(const FvwmWindow *fw) in focus_does_accept_input_focus() argument
787 return (!fw || !fw->wmhints || in focus_does_accept_input_focus()
788 !(fw->wmhints->flags & InputHint) || fw->wmhints->input); in focus_does_accept_input_focus()
791 Bool focus_is_focused(const FvwmWindow *fw) in focus_is_focused() argument
793 return (fw && fw == ScreenFocus); in focus_is_focused()
797 FvwmWindow *fw, Bool is_focused, int context) in focus_query_click_to_raise() argument
803 c = &FP_DO_RAISE_FOCUSED_CLICK(FW_FOCUS_POLICY(fw)); in focus_query_click_to_raise()
807 c = &FP_DO_RAISE_UNFOCUSED_CLICK(FW_FOCUS_POLICY(fw)); in focus_query_click_to_raise()
814 FvwmWindow *fw, int context) in focus_query_click_to_focus() argument
818 c = &FP_DO_FOCUS_CLICK(FW_FOCUS_POLICY(fw)); in focus_query_click_to_focus()
825 Bool focus_query_open_grab_focus(FvwmWindow *fw, FvwmWindow *focus_win) in focus_query_open_grab_focus() argument
827 if (fw == NULL) in focus_query_open_grab_focus()
838 validate_transientfor(fw); in focus_query_open_grab_focus()
839 if (IS_TRANSIENT(fw) && FW_W_TRANSIENTFOR(fw) != Scr.Root) in focus_query_open_grab_focus()
842 FP_DO_GRAB_FOCUS_TRANSIENT(FW_FOCUS_POLICY(fw)) && in focus_query_open_grab_focus()
843 FW_W(focus_win) == FW_W_TRANSIENTFOR(fw)) in focus_query_open_grab_focus()
852 if (FP_DO_GRAB_FOCUS(FW_FOCUS_POLICY(fw)) && in focus_query_open_grab_focus()
865 Bool focus_query_close_release_focus(const FvwmWindow *fw) in focus_query_close_release_focus() argument
867 if (fw == NULL || fw != get_focus_window()) in focus_query_close_release_focus()
871 if (!IS_TRANSIENT(fw) && in focus_query_close_release_focus()
872 (FW_W_TRANSIENTFOR(fw) == Scr.Root || in focus_query_close_release_focus()
873 FP_DO_GRAB_FOCUS(FW_FOCUS_POLICY(fw)))) in focus_query_close_release_focus()
877 else if (IS_TRANSIENT(fw) && in focus_query_close_release_focus()
878 FP_DO_GRAB_FOCUS_TRANSIENT(FW_FOCUS_POLICY(fw))) in focus_query_close_release_focus()
886 static void __focus_grab_buttons(FvwmWindow *fw, Bool client_entered) in __focus_grab_buttons() argument
892 if (fw == NULL || IS_SCHEDULED_FOR_DESTROY(fw) || !IS_MAPPED(fw)) in __focus_grab_buttons()
899 do_grab_window = focus_query_grab_buttons(fw, client_entered); in __focus_grab_buttons()
902 grab_buttons |= FP_USE_MOUSE_BUTTONS(FW_FOCUS_POLICY(fw)); in __focus_grab_buttons()
904 if (grab_buttons != fw->grabbed_buttons) in __focus_grab_buttons()
909 __focus_grab_one_button(fw, i, grab_buttons); in __focus_grab_buttons()
917 void focus_grab_buttons(FvwmWindow *fw) in focus_grab_buttons() argument
919 __focus_grab_buttons(fw, False); in focus_grab_buttons()
922 void focus_grab_buttons_client_entered(FvwmWindow *fw) in focus_grab_buttons_client_entered() argument
924 __focus_grab_buttons(fw, True); in focus_grab_buttons_client_entered()
929 FvwmWindow *fw; in focus_grab_buttons_on_layer() local
932 fw = Scr.FvwmRoot.stack_next; in focus_grab_buttons_on_layer()
933 fw != &Scr.FvwmRoot && fw->layer >= layer; in focus_grab_buttons_on_layer()
934 fw = fw->stack_next) in focus_grab_buttons_on_layer()
936 if (fw->layer == layer) in focus_grab_buttons_on_layer()
938 focus_grab_buttons(fw); in focus_grab_buttons_on_layer()
947 FvwmWindow *fw; in focus_grab_buttons_all() local
949 for (fw = Scr.FvwmRoot.next; fw != NULL; fw = fw->next) in focus_grab_buttons_all()
951 focus_grab_buttons(fw); in focus_grab_buttons_all()
958 FvwmWindow *fw, Bool do_allow_force_broadcast, in _SetFocusWindow() argument
977 set_focus_to_fwin(FW_W(fw), fw, &sf_args); in _SetFocusWindow()
982 void _ReturnFocusWindow(FvwmWindow *fw) in _ReturnFocusWindow() argument
993 set_focus_to_fwin(FW_W(fw), fw, &sf_args); in _ReturnFocusWindow()
1033 const FvwmWindow *fw, Bool do_skip_marked_transients) in restore_focus_after_unmap() argument
1038 if (focus_is_focused(fw)) in restore_focus_after_unmap()
1041 fw, do_skip_marked_transients); in restore_focus_after_unmap()
1043 if (fw == Scr.pushed_window) in restore_focus_after_unmap()
1047 if (fw == colormap_win) in restore_focus_after_unmap()
1066 FvwmWindow *fw; in focus_grab_buttons_on_pointer_window() local
1075 if (XFindContext(dpy, w, FvwmContext, (caddr_t *) &fw) == XCNOENT) in focus_grab_buttons_on_pointer_window()
1080 focus_grab_buttons(fw); in focus_grab_buttons_on_pointer_window()
1091 void set_focus_window(FvwmWindow *fw) in set_focus_window() argument
1093 ScreenFocus = fw; in set_focus_window()
1103 void set_last_screen_focus_window(FvwmWindow *fw) in set_last_screen_focus_window() argument
1105 LastScreenFocus = fw; in set_last_screen_focus_window()
1110 void update_last_screen_focus_window(FvwmWindow *fw) in update_last_screen_focus_window() argument
1112 if (fw == LastScreenFocus) in update_last_screen_focus_window()
1120 void set_focus_model(FvwmWindow *fw) in set_focus_model() argument
1122 if (!focus_does_accept_input_focus(fw)) in set_focus_model()
1124 if (WM_TAKES_FOCUS(fw)) in set_focus_model()
1126 fw->focus_model = FM_GLOBALLY_ACTIVE; in set_focus_model()
1130 fw->focus_model = FM_NO_INPUT; in set_focus_model()
1135 if (WM_TAKES_FOCUS(fw)) in set_focus_model()
1137 fw->focus_model = FM_LOCALLY_ACTIVE; in set_focus_model()
1141 fw->focus_model = FM_PASSIVE; in set_focus_model()
1152 void focus_force_refresh_focus(const FvwmWindow *fw) in focus_force_refresh_focus() argument
1157 if (XGetWindowAttributes(dpy, FW_W(fw), &winattrs)) in focus_force_refresh_focus()
1160 dpy, FW_W(fw), in focus_force_refresh_focus()
1162 FOCUS_SET(FW_W(fw), NULL /* we don't expect an event */); in focus_force_refresh_focus()
1163 XSelectInput(dpy, FW_W(fw), winattrs.your_event_mask); in focus_force_refresh_focus()
1170 void refresh_focus(const FvwmWindow *fw) in refresh_focus() argument
1174 if (fw == NULL || !focus_is_focused(fw)) in refresh_focus()
1182 switch (fw->focus_model) in refresh_focus()
1196 focus_force_refresh_focus(fw); in refresh_focus()