XtPopdown(3)
π NAME π
XtPopdown, XtCallbackPopdown β unmap a pop-up, bestie π
β¨ SYNTAX β¨
#include <X11/Intrinsic.h>
void XtPopdown(Widget popup_shell);
void XtCallbackPopdown(Widget w, XtPointer client_data, XtPointer
call_data);
π₯ ACTIONS π₯
void XtMenuPopdown(String shell_name);
π«Ά ARGUMENTS π«Ά
call_dataβ the callback data. It's giving decoration tbh, this procedure does not use it. πclient_dataβ a pointer to theXtPopdownIDstructure. Yes queen, point at the struct.popup_shellβ the widget shell you want to pop down. Bye bestie πshell_nameβ the name of the widget shell you want to pop down.wβ the widget. Justβ¦ the widget.
π DESCRIPTION π
So XtPopdown does a whole little routine, and honestly? It eats. Here's the whole choreography, in order:
- Calls
XtCheckSubclassto make surepopup_shellis a subclass ofShell. Gotta verify the vibe first β¨ - Checks that
popup_shellis currentlypopped_upβ and if it is not, it generates an error. No popping down what was never popped up, periodt. - Unmaps
popup_shell's window. - If
popup_shell'sgrab_kindis eitherXtGrabNonexclusiveorXtGrabExclusive, it callsXtRemoveGrab. - Sets pop-up shell's
popped_upfield toFalse. - Calls the callback procedures on the shell's
popdown_callbacklist.
π¦ The struct moment π¦
XtCallbackPopdown casts the client_data parameter to an XtPopdownID pointer, and it looks like this:
typedef struct {
Widget shell_widget;
Widget enable_widget;
} XtPopdownIDRec, *XtPopdownID;
So shell_widget is the pop-up shell to pop down, and enable_widget is the widget that was used to pop it up. Iconic duo fr fr π
XtCallbackPopdown calls XtPopdown with the specified shell_widget and then calls XtSetSensitive to resensitize the enable_widget. Waking it back up like the main character it is πΈ
π§ XtMenuPopdown lore π§
If a shell name is not given, XtMenuPopdown calls XtPopdown with the widget for which the translation is specified.
If a shell_name is specified in the translation table, XtMenuPopdown tries to find the shell by looking up the widget tree starting at the parent of the widget in which it is invoked. If it finds a shell with the specified name in the pop-up children of that parent, it pops down the shell; otherwise, it moves up the parent chain as needed.
And if XtMenuPopdown gets all the way to the application top-level shell widget and still cannot find a matching shell β it generates an error. It looked everywhere bestie, there's nothing left to search π
π SEE ALSO π
XtCreatePopupShell(3)XtPopup(3)X Toolkit Intrinsics - C Language InterfaceXlib - C Language X Interface
Okay that's the whole page, love u, go forth and unmap responsibly π This lil manual moment came to you from X Version 11, libXt 1.3.1, and the one and only XtPopdown(3) πβ¨ no cap, that's the whole source-and-version situation, mwah π«Ά
π¦ where this page comes from
- alpine 3.22: libxt-doc 1.3.1-r0 Β· MIT
- alpine 3.23: libxt-doc 1.3.1-r0 Β· MIT
- alpine 3.24: libxt-doc 1.3.1-r0 Β· MIT
- arch rolling: libxt 1.3.1-1 Β· MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
- fedora 43: libXt-devel 1.3.1-3.fc43 Β· MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
- fedora 43: libXt-devel 1.3.1-3.fc43 Β· MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
- fedora 44: libXt-devel 1.3.1-4.fc44 Β· MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
- fedora 44: libXt-devel 1.3.1-4.fc44 Β· MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
- opensuse-leap 16.0: libXt-devel 1.3.1-160000.3.2 Β· MIT
- opensuse-leap 16.0: libXt-devel 1.3.1-160000.3.2 Β· MIT
- opensuse-leap 16.0: libXt-devel 1.3.1-160000.3.2 Β· MIT
- opensuse-leap 16.0: libXt-devel 1.3.1-160000.3.2 Β· MIT
- Copyright 1993 X Consortium
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms