dnd: fix segfault on grabbing
Some cursor themes don't include a "grabbing" icon, causing a segfault. This patch fixes this by just reverting to the stardard cursor instead. https://bugs.freedesktop.org/show_bug.cgi?id=50487
This commit is contained in:
committed by
Kristian Høgsberg
parent
33d7509d37
commit
f22d0ecd97
@@ -20,6 +20,7 @@
|
|||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -327,6 +328,12 @@ create_drag_cursor(struct dnd_drag *dnd_drag,
|
|||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
|
|
||||||
pointer = display_get_pointer_image(dnd->display, CURSOR_DRAGGING);
|
pointer = display_get_pointer_image(dnd->display, CURSOR_DRAGGING);
|
||||||
|
if (!pointer) {
|
||||||
|
fprintf(stderr, "WARNING: grabbing cursor image not found\n");
|
||||||
|
pointer = display_get_pointer_image(dnd->display,
|
||||||
|
CURSOR_LEFT_PTR);
|
||||||
|
assert(pointer && "no cursor image found");
|
||||||
|
}
|
||||||
|
|
||||||
rectangle.width = item_width + 2 * pointer->width;
|
rectangle.width = item_width + 2 * pointer->width;
|
||||||
rectangle.height = item_height + 2 * pointer->height;
|
rectangle.height = item_height + 2 * pointer->height;
|
||||||
|
|||||||
Reference in New Issue
Block a user