win: rename some functions
rename map_win, unmap_win, destroy_win to map_win_start, unmap_win_start, destroy_win_start respectively. To clarify their intended functions. Also rename the corresponding finish_* functions to *_finish so they are consistent. Also some very minor code clean ups. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
fd570e1b78
commit
b9bf4fed60
|
@ -1272,7 +1272,7 @@ static void handle_new_windows(session_t *ps) {
|
||||||
}
|
}
|
||||||
auto mw = (struct managed_win *)new_w;
|
auto mw = (struct managed_win *)new_w;
|
||||||
if (mw->a.map_state == XCB_MAP_STATE_VIEWABLE) {
|
if (mw->a.map_state == XCB_MAP_STATE_VIEWABLE) {
|
||||||
map_win(ps, mw);
|
map_win_start(ps, mw);
|
||||||
|
|
||||||
// This window might be damaged before we called fill_win
|
// This window might be damaged before we called fill_win
|
||||||
// and created the damage handle. And there is no way for
|
// and created the damage handle. And there is no way for
|
||||||
|
|
|
@ -262,7 +262,7 @@ static inline void ev_configure_notify(session_t *ps, xcb_configure_notify_event
|
||||||
static inline void ev_destroy_notify(session_t *ps, xcb_destroy_notify_event_t *ev) {
|
static inline void ev_destroy_notify(session_t *ps, xcb_destroy_notify_event_t *ev) {
|
||||||
auto w = find_win(ps, ev->window);
|
auto w = find_win(ps, ev->window);
|
||||||
if (w) {
|
if (w) {
|
||||||
auto _ attr_unused = destroy_win(ps, w);
|
auto _ attr_unused = destroy_win_start(ps, w);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ static inline void ev_map_notify(session_t *ps, xcb_map_notify_event_t *ev) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
map_win(ps, w);
|
map_win_start(ps, w);
|
||||||
|
|
||||||
// FocusIn/Out may be ignored when the window is unmapped, so we must
|
// FocusIn/Out may be ignored when the window is unmapped, so we must
|
||||||
// recheck focus here
|
// recheck focus here
|
||||||
|
@ -295,7 +295,7 @@ static inline void ev_map_notify(session_t *ps, xcb_map_notify_event_t *ev) {
|
||||||
static inline void ev_unmap_notify(session_t *ps, xcb_unmap_notify_event_t *ev) {
|
static inline void ev_unmap_notify(session_t *ps, xcb_unmap_notify_event_t *ev) {
|
||||||
auto w = find_managed_win(ps, ev->window);
|
auto w = find_managed_win(ps, ev->window);
|
||||||
if (w) {
|
if (w) {
|
||||||
unmap_win(ps, w);
|
unmap_win_start(ps, w);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,7 +321,7 @@ static inline void ev_reparent_notify(session_t *ps, xcb_reparent_notify_event_t
|
||||||
{
|
{
|
||||||
auto w = find_win(ps, ev->window);
|
auto w = find_win(ps, ev->window);
|
||||||
if (w) {
|
if (w) {
|
||||||
auto _ attr_unused = destroy_win(ps, w);
|
auto _ attr_unused = destroy_win_start(ps, w);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
28
src/win.c
28
src/win.c
|
@ -1650,7 +1650,7 @@ void win_ev_stop(session_t *ps, const struct win *w) {
|
||||||
|
|
||||||
/// Finish the unmapping of a window (e.g. after fading has finished).
|
/// Finish the unmapping of a window (e.g. after fading has finished).
|
||||||
/// Doesn't free `w`
|
/// Doesn't free `w`
|
||||||
static void finish_unmap_win(session_t *ps, struct managed_win *w) {
|
static void unmap_win_finish(session_t *ps, struct managed_win *w) {
|
||||||
w->ever_damaged = false;
|
w->ever_damaged = false;
|
||||||
w->reg_ignore_valid = false;
|
w->reg_ignore_valid = false;
|
||||||
w->state = WSTATE_UNMAPPED;
|
w->state = WSTATE_UNMAPPED;
|
||||||
|
@ -1668,7 +1668,7 @@ static void finish_unmap_win(session_t *ps, struct managed_win *w) {
|
||||||
|
|
||||||
/// Finish the destruction of a window (e.g. after fading has finished).
|
/// Finish the destruction of a window (e.g. after fading has finished).
|
||||||
/// Frees `w`
|
/// Frees `w`
|
||||||
static void finish_destroy_win(session_t *ps, struct win *w) {
|
static void destroy_win_finish(session_t *ps, struct win *w) {
|
||||||
log_trace("Trying to finish destroying (%#010x)", w->id);
|
log_trace("Trying to finish destroying (%#010x)", w->id);
|
||||||
|
|
||||||
auto next_w = win_stack_find_next_managed(ps, &w->stack_neighbour);
|
auto next_w = win_stack_find_next_managed(ps, &w->stack_neighbour);
|
||||||
|
@ -1683,7 +1683,7 @@ static void finish_destroy_win(session_t *ps, struct win *w) {
|
||||||
// XXX actually we unmap_win_finish only frees the rendering
|
// XXX actually we unmap_win_finish only frees the rendering
|
||||||
// resources, we still need to call free_win_res. will fix
|
// resources, we still need to call free_win_res. will fix
|
||||||
// later.
|
// later.
|
||||||
finish_unmap_win(ps, mw);
|
unmap_win_finish(ps, mw);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invalidate reg_ignore of windows below this one
|
// Invalidate reg_ignore of windows below this one
|
||||||
|
@ -1723,7 +1723,7 @@ static void finish_destroy_win(session_t *ps, struct win *w) {
|
||||||
free(w);
|
free(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void finish_map_win(struct managed_win *w) {
|
static void map_win_finish(struct managed_win *w) {
|
||||||
w->in_openclose = false;
|
w->in_openclose = false;
|
||||||
w->state = WSTATE_MAPPED;
|
w->state = WSTATE_MAPPED;
|
||||||
}
|
}
|
||||||
|
@ -1815,7 +1815,7 @@ void restack_top(session_t *ps, struct win *w) {
|
||||||
/// because of fading and such.
|
/// because of fading and such.
|
||||||
///
|
///
|
||||||
/// @return whether the window has finished destroying and is freed
|
/// @return whether the window has finished destroying and is freed
|
||||||
bool destroy_win(session_t *ps, struct win *w) {
|
bool destroy_win_start(session_t *ps, struct win *w) {
|
||||||
auto mw = (struct managed_win *)w;
|
auto mw = (struct managed_win *)w;
|
||||||
assert(w);
|
assert(w);
|
||||||
|
|
||||||
|
@ -1831,7 +1831,7 @@ bool destroy_win(session_t *ps, struct win *w) {
|
||||||
|
|
||||||
if (!w->managed || mw->state == WSTATE_UNMAPPED) {
|
if (!w->managed || mw->state == WSTATE_UNMAPPED) {
|
||||||
// Window is already unmapped, or is an unmanged window, just destroy it
|
// Window is already unmapped, or is an unmanged window, just destroy it
|
||||||
finish_destroy_win(ps, w);
|
destroy_win_finish(ps, w);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1858,7 +1858,7 @@ bool destroy_win(session_t *ps, struct win *w) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void unmap_win(session_t *ps, struct managed_win *w) {
|
void unmap_win_start(session_t *ps, struct managed_win *w) {
|
||||||
assert(w);
|
assert(w);
|
||||||
assert(w->base.managed);
|
assert(w->base.managed);
|
||||||
assert(w->a._class != XCB_WINDOW_CLASS_INPUT_ONLY);
|
assert(w->a._class != XCB_WINDOW_CLASS_INPUT_ONLY);
|
||||||
|
@ -1913,9 +1913,9 @@ bool win_check_fade_finished(session_t *ps, struct managed_win *w) {
|
||||||
}
|
}
|
||||||
if (w->opacity == w->opacity_target) {
|
if (w->opacity == w->opacity_target) {
|
||||||
switch (w->state) {
|
switch (w->state) {
|
||||||
case WSTATE_UNMAPPING: finish_unmap_win(ps, w); return false;
|
case WSTATE_UNMAPPING: unmap_win_finish(ps, w); return false;
|
||||||
case WSTATE_DESTROYING: finish_destroy_win(ps, &w->base); return true;
|
case WSTATE_DESTROYING: destroy_win_finish(ps, &w->base); return true;
|
||||||
case WSTATE_MAPPING: finish_map_win(w); return false;
|
case WSTATE_MAPPING: map_win_finish(w); return false;
|
||||||
case WSTATE_FADING: w->state = WSTATE_MAPPED; break;
|
case WSTATE_FADING: w->state = WSTATE_MAPPED; break;
|
||||||
default: unreachable;
|
default: unreachable;
|
||||||
}
|
}
|
||||||
|
@ -1960,7 +1960,7 @@ void win_update_screen(session_t *ps, struct managed_win *w) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Map an already registered window
|
/// Map an already registered window
|
||||||
void map_win(session_t *ps, struct managed_win *w) {
|
void map_win_start(session_t *ps, struct managed_win *w) {
|
||||||
assert(w);
|
assert(w);
|
||||||
|
|
||||||
// Don't care about window mapping if it's an InputOnly window
|
// Don't care about window mapping if it's an InputOnly window
|
||||||
|
@ -1980,7 +1980,10 @@ void map_win(session_t *ps, struct managed_win *w) {
|
||||||
if (w->state == WSTATE_UNMAPPING) {
|
if (w->state == WSTATE_UNMAPPING) {
|
||||||
CHECK(!win_skip_fading(ps, w));
|
CHECK(!win_skip_fading(ps, w));
|
||||||
// We skipped the unmapping process, the window was rendered, now it is
|
// We skipped the unmapping process, the window was rendered, now it is
|
||||||
// not anymore. So we need to mark then unmapping window as damaged.
|
// not anymore. So we need to mark the then unmapping window as damaged.
|
||||||
|
//
|
||||||
|
// Solves problem when, for example, a window is unmapped then mapped in a
|
||||||
|
// different location
|
||||||
add_damage_from_win(ps, w);
|
add_damage_from_win(ps, w);
|
||||||
assert(w);
|
assert(w);
|
||||||
}
|
}
|
||||||
|
@ -2100,7 +2103,6 @@ void map_win(session_t *ps, struct managed_win *w) {
|
||||||
|
|
||||||
if (!ps->redirected) {
|
if (!ps->redirected) {
|
||||||
CHECK(!win_skip_fading(ps, w));
|
CHECK(!win_skip_fading(ps, w));
|
||||||
assert(w);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -255,11 +255,15 @@ void win_process_flags(session_t *ps, struct managed_win *w);
|
||||||
|
|
||||||
/// Start the unmap of a window. We cannot unmap immediately since we might need to fade
|
/// Start the unmap of a window. We cannot unmap immediately since we might need to fade
|
||||||
/// the window out.
|
/// the window out.
|
||||||
void unmap_win(struct session *, struct managed_win *);
|
void unmap_win_start(struct session *, struct managed_win *);
|
||||||
|
|
||||||
|
/// Start the mapping of a window. We cannot map immediately since we might need to fade
|
||||||
|
/// the window in.
|
||||||
|
void map_win_start(struct session *, struct managed_win *);
|
||||||
|
|
||||||
/// Start the destroying of a window. Windows cannot always be destroyed immediately
|
/// Start the destroying of a window. Windows cannot always be destroyed immediately
|
||||||
/// because of fading and such.
|
/// because of fading and such.
|
||||||
bool must_use destroy_win(session_t *ps, struct win *w);
|
bool must_use destroy_win_start(session_t *ps, struct win *w);
|
||||||
|
|
||||||
/// Release images bound with a window, set the *_NONE flags on the window. Only to be
|
/// Release images bound with a window, set the *_NONE flags on the window. Only to be
|
||||||
/// used when de-initializing the backend outside of win.c
|
/// used when de-initializing the backend outside of win.c
|
||||||
|
@ -366,7 +370,6 @@ void restack_above(session_t *ps, struct win *w, xcb_window_t below);
|
||||||
void restack_bottom(session_t *ps, struct win *w);
|
void restack_bottom(session_t *ps, struct win *w);
|
||||||
/// Move window `w` to the top of the stack
|
/// Move window `w` to the top of the stack
|
||||||
void restack_top(session_t *ps, struct win *w);
|
void restack_top(session_t *ps, struct win *w);
|
||||||
void map_win(session_t *ps, struct managed_win *w);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute fade callback of a window if fading finished.
|
* Execute fade callback of a window if fading finished.
|
||||||
|
|
Loading…
Reference in New Issue