Я использую 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;
}