mirror of
https://github.com/awesomeWM/awesome
synced 2024-11-17 07:47:41 +01:00
[xutil] Move cursor creation to xutil
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
c148b378cf
commit
4f0dbdabb0
3 changed files with 36 additions and 35 deletions
42
awesome.c
42
awesome.c
|
@ -164,30 +164,6 @@ scan()
|
||||||
p_delete(&root_wins);
|
p_delete(&root_wins);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Equivalent to 'XCreateFontCursor()', error are handled by the
|
|
||||||
* default current error handler
|
|
||||||
* \param cursor_font type of cursor to use
|
|
||||||
* \return allocated cursor font
|
|
||||||
*/
|
|
||||||
static xcb_cursor_t
|
|
||||||
create_font_cursor(unsigned int cursor_font)
|
|
||||||
{
|
|
||||||
xcb_font_t font;
|
|
||||||
xcb_cursor_t cursor;
|
|
||||||
|
|
||||||
/* Get the font for the cursor*/
|
|
||||||
font = xcb_generate_id(globalconf.connection);
|
|
||||||
xcb_open_font(globalconf.connection, font, strlen("cursor"), "cursor");
|
|
||||||
|
|
||||||
cursor = xcb_generate_id(globalconf.connection);
|
|
||||||
xcb_create_glyph_cursor (globalconf.connection, cursor, font, font,
|
|
||||||
cursor_font, cursor_font + 1,
|
|
||||||
0, 0, 0,
|
|
||||||
65535, 65535, 65535);
|
|
||||||
|
|
||||||
return cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Startup Error handler to check if another window manager
|
/** Startup Error handler to check if another window manager
|
||||||
* is already running.
|
* is already running.
|
||||||
* \param data Additional optional parameters data
|
* \param data Additional optional parameters data
|
||||||
|
@ -387,15 +363,15 @@ main(int argc, char **argv)
|
||||||
eprint("failed to load/parse configuration file %s", confpath);
|
eprint("failed to load/parse configuration file %s", confpath);
|
||||||
|
|
||||||
/* init cursors */
|
/* init cursors */
|
||||||
globalconf.cursor[CurNormal] = create_font_cursor(CURSOR_LEFT_PTR);
|
globalconf.cursor[CurNormal] = xutil_cursor_new(globalconf.connection, CURSOR_LEFT_PTR);
|
||||||
globalconf.cursor[CurResize] = create_font_cursor(CURSOR_SIZING);
|
globalconf.cursor[CurResize] = xutil_cursor_new(globalconf.connection, CURSOR_SIZING);
|
||||||
globalconf.cursor[CurResizeH] = create_font_cursor(CURSOR_DOUBLE_ARROW_HORIZ);
|
globalconf.cursor[CurResizeH] = xutil_cursor_new(globalconf.connection, CURSOR_DOUBLE_ARROW_HORIZ);
|
||||||
globalconf.cursor[CurResizeV] = create_font_cursor(CURSOR_DOUBLE_ARROW_VERT);
|
globalconf.cursor[CurResizeV] = xutil_cursor_new(globalconf.connection, CURSOR_DOUBLE_ARROW_VERT);
|
||||||
globalconf.cursor[CurMove] = create_font_cursor(CURSOR_FLEUR);
|
globalconf.cursor[CurMove] = xutil_cursor_new(globalconf.connection, CURSOR_FLEUR);
|
||||||
globalconf.cursor[CurTopRight] = create_font_cursor(CURSOR_TOP_RIGHT_CORNER);
|
globalconf.cursor[CurTopRight] = xutil_cursor_new(globalconf.connection, CURSOR_TOP_RIGHT_CORNER);
|
||||||
globalconf.cursor[CurTopLeft] = create_font_cursor(CURSOR_TOP_LEFT_CORNER);
|
globalconf.cursor[CurTopLeft] = xutil_cursor_new(globalconf.connection, CURSOR_TOP_LEFT_CORNER);
|
||||||
globalconf.cursor[CurBotRight] = create_font_cursor(CURSOR_BOTTOM_RIGHT_CORNER);
|
globalconf.cursor[CurBotRight] = xutil_cursor_new(globalconf.connection, CURSOR_BOTTOM_RIGHT_CORNER);
|
||||||
globalconf.cursor[CurBotLeft] = create_font_cursor(CURSOR_BOTTOM_LEFT_CORNER);
|
globalconf.cursor[CurBotLeft] = xutil_cursor_new(globalconf.connection, CURSOR_BOTTOM_LEFT_CORNER);
|
||||||
|
|
||||||
/* select for events */
|
/* select for events */
|
||||||
const uint32_t change_win_vals[] =
|
const uint32_t change_win_vals[] =
|
||||||
|
|
|
@ -209,12 +209,12 @@ xutil_intern_atom_reply(xcb_connection_t *c, xutil_atom_cache_t **atoms,
|
||||||
xutil_atom_cache_t *atom_cache, *atom_next;
|
xutil_atom_cache_t *atom_cache, *atom_next;
|
||||||
|
|
||||||
/* If the atom is present in the cache, just returns the
|
/* If the atom is present in the cache, just returns the
|
||||||
* atom... */
|
* atom... */
|
||||||
if(atom_req.cache_hit)
|
if(atom_req.cache_hit)
|
||||||
return atom_req.cache->atom;
|
return atom_req.cache->atom;
|
||||||
|
|
||||||
/* Get the reply from InternAtom request */
|
/* Get the reply from InternAtom request */
|
||||||
if((atom_rep = xcb_intern_atom_reply(c, atom_req.cookie, NULL)) == NULL)
|
if(!(atom_rep = xcb_intern_atom_reply(c, atom_req.cookie, NULL)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Create a new atom cache entry */
|
/* Create a new atom cache entry */
|
||||||
|
@ -583,4 +583,28 @@ xutil_button_fromint(int button)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Equivalent to 'XCreateFontCursor()', error are handled by the
|
||||||
|
* default current error handler.
|
||||||
|
* \param cursor_font Type of cursor to use.
|
||||||
|
* \return Allocated cursor font.
|
||||||
|
*/
|
||||||
|
xcb_cursor_t
|
||||||
|
xutil_cursor_new(xcb_connection_t *conn, unsigned int cursor_font)
|
||||||
|
{
|
||||||
|
xcb_font_t font;
|
||||||
|
xcb_cursor_t cursor;
|
||||||
|
|
||||||
|
/* Get the font for the cursor*/
|
||||||
|
font = xcb_generate_id(conn);
|
||||||
|
xcb_open_font(conn, font, a_strlen("cursor"), "cursor");
|
||||||
|
|
||||||
|
cursor = xcb_generate_id(conn);
|
||||||
|
xcb_create_glyph_cursor(conn, cursor, font, font,
|
||||||
|
cursor_font, cursor_font + 1,
|
||||||
|
0, 0, 0,
|
||||||
|
65535, 65535, 65535);
|
||||||
|
|
||||||
|
return cursor;
|
||||||
|
}
|
||||||
|
|
||||||
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||||
|
|
|
@ -158,6 +158,7 @@ xutil_error_t *xutil_get_error(const xcb_generic_error_t *);
|
||||||
void xutil_delete_error(xutil_error_t *);
|
void xutil_delete_error(xutil_error_t *);
|
||||||
xcb_keysym_t xutil_keymask_fromstr(const char *);
|
xcb_keysym_t xutil_keymask_fromstr(const char *);
|
||||||
unsigned int xutil_button_fromint(int);
|
unsigned int xutil_button_fromint(int);
|
||||||
|
xcb_cursor_t xutil_cursor_new(xcb_connection_t *, unsigned int);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||||
|
|
Loading…
Reference in a new issue