libXm получить номер дисплея из виджета - PullRequest
0 голосов
/ 04 марта 2019

Я использую libXm4.0.3.Я хочу получить номер дисплея, на котором отображается виджет, из виджета.

Переход непосредственно к xlib вызывает segfault.Похоже, что Xt также является segfault.

Я начал использовать некоторые функции XmGetXmDisplay или XmGetXmScreen, но я вижу «Не удалось найти информацию для каждого дисплея», и я не знаю, как это преодолеть.

Как я могу получить текущий номер дисплея из виджета libXm?

Это мой текущий код:

int get_disp_num_from_widget(Widget w) {
    Screen* xs = w->core.screen; //Xlib screen
    if (xs) {
        Display* xd = w->core.screen->display; //Xlib display
        if (xd) {
            XmDisplay d = XmGetXmDisplay(xd); // causes "Couldn't find per display information"
            if (d) {
                char* string = d->display.bindingsString;
                if (string) {
                    printf("Display binding string: %s", string);
                }
            }
        }
    }
    return -1;
}

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете получить отображение * любого виджета, используя функцию XtDisplay (Widget *).

...