[for enrico] Question: do we still need that?

Enrico Forestieri forenr at lyx.org
Wed Aug 28 18:51:42 UTC 2024


On Wed, Aug 28, 2024 at 04:48:16PM +0200, Jean-Marc Lasgouttes wrote:
>Le 28/08/2024 à 15:54, Jean-Marc Lasgouttes a écrit :
>>In createAppplication, we have:
>>
>>#if !defined(QPA_XCB)
>>     // prune -geometry argument(s) by shifting
>>     // the following ones 2 places down.
>>     for (int i = 0 ; i < argc ; ++i) {
>>         if (strcmp(argv[i], "-geometry") == 0) {
>>             int const remove = (i+1) < argc ? 2 : 1;
>>             argc -= remove;
>>             for (int j = i; j < argc; ++j)
>>                 argv[j] = argv[j + remove];
>>             --i;
>>         }
>>     }
>>#endif
>>
>>
>>Archaeology tells me that it came from win32 code, where the goal 
>>was likely to accept and ignore -geometry parameter on non-x11 
>>binaries.
>>
>>Can I get rid of it? The current platform is known only after 
>>creating the QGuiApplication object, and this requires (argv,argc) 
>>as argument.
>>
>>Removing silently these arguments seems a bit silly to me anyway.
>
>Forget about it for now, I have found the code in LyX.cpp, which is 
>redundant with the code in createApplication, if I understand 
>correctly.

I am not sure I understand your concern. That makes the -geometry option 
work also on Windows. Maybe those lines can be transferred in the 
following guard, i.e.,

|#if !defined(QPA_XCB)
|	// prune -geometry argument(s) by shifting
|	// the following ones 2 places down.
|	for (int i = 0 ; i < argc ; ++i) {
|		if (strcmp(argv[i], "-geometry") == 0) {
|			int const remove = (i+1) < argc ? 2 : 1;
|			argc -= remove;
|			for (int j = i; j < argc; ++j)
|				argv[j] = argv[j + remove];
|			--i;
|		}
|	}
|#endif
|
|#if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)
|	// On Windows, allow bringing the LyX window to top
|	AllowSetForegroundWindow(ASFW_ANY);
|#endif

might become

|#if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)
|	// prune -geometry argument(s) by shifting
|	// the following ones 2 places down.
|	for (int i = 0 ; i < argc ; ++i) {
|		if (strcmp(argv[i], "-geometry") == 0) {
|			int const remove = (i+1) < argc ? 2 : 1;
|			argc -= remove;
|			for (int j = i; j < argc; ++j)
|				argv[j] = argv[j + remove];
|			--i;
|		}
|	}
|
|	// On Windows, allow bringing the LyX window to top
|	AllowSetForegroundWindow(ASFW_ANY);
|#endif

so that we can get rid of QPA_XCB?

-- 
Enrico


More information about the lyx-devel mailing list