LINUX.ORG.RU

А с каких пор у нас иксы стали рамки отрисовывать? Всю жизнь ведь этим WM'ы занимались?

CrossFire ★★★★★
()
Ответ на: комментарий от Ancient

Мдяяя... походу, мне 100% придётся писать WM. А я хотел его встроить в библиотеку.

Хинты wm нормально отрабатывает, так что не надо ничего писать. Но если пользователь захочет рамку — его мало что может остановить, но зачем мешать — решительно не понимаю.

anonymous
()

В федоре уже думают про wayland по дефолту, а кто-то до сих пор на голом xlib хочет писать...

anonymous
()
Ответ на: комментарий от anonymous

Systemd использую. А случайно не знаешь, как отправлять подсказки оконным менеджерам? Найти никак не могу.

Ancient
() автор топика
Ответ на: комментарий от Ancient

Ну вон же сказали выше вторым ответом: установкой на окно свойства _MOTIF_WM_HINTS со своими подсказками.

#define MWM_HINTS_FUNCTIONS	(1L << 0)
#define MWM_HINTS_DECORATIONS	(1L << 1)
#define MWM_HINTS_INPUT_MODE	(1L << 2)
#define MWM_HINTS_STATUS	(1L << 3)

#define MWM_FUNC_ALL		(1L << 0)
#define MWM_FUNC_RESIZE		(1L << 1)
#define MWM_FUNC_MOVE		(1L << 2)
#define MWM_FUNC_MINIMIZE	(1L << 3)
#define MWM_FUNC_MAXIMIZE	(1L << 4)
#define MWM_FUNC_CLOSE		(1L << 5)

#define MWM_DECOR_ALL		(1L << 0)
#define MWM_DECOR_BORDER	(1L << 1)
#define MWM_DECOR_RESIZEH	(1L << 2)
#define MWM_DECOR_TITLE		(1L << 3)
#define MWM_DECOR_MENU		(1L << 4)
#define MWM_DECOR_MINIMIZE	(1L << 5)
#define MWM_DECOR_MAXIMIZE	(1L << 6)

struct MotifWmHints
{
	unsigned long flags;
	unsigned long functions;
	unsigned long decorations;
	long inputMode;
	unsigned long status;
};

void set_window_decorations(Display *display, Window window, bool show)
{
	struct MotifWmHints hints;
	
	hints.decorations = show ? MWM_DECOR_ALL : 0;
	hints.functions = show ? MWM_FUNC_ALL
	                       : MWM_FUNC_MOVE | MWM_FUNC_CLOSE;
	hints.flags = MWM_HINTS_DECORATIONS | MWM_HINTS_FUNCTIONS;
	hints.inputMode = 0;
	hints.status = 0;

	Atom _MOTIF_WM_HINTS = XInternAtom(display, "_MOTIF_WM_HINTS", False);

	XChangeProperty(display, window, _MOTIF_WM_HINTS, _MOTIF_WM_HINTS,
			32, PropModeReplace, (unsigned char*) &hints, 5);
}
ilammy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.