Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A strange dialog "warping" in one browser profile but not another #738

Open
nexushoratio opened this issue Jun 6, 2024 · 2 comments
Open

Comments

@nexushoratio
Copy link
Contributor

I'm seeing a strange issue, but only in one of two Firefox profiles that I use on my Linux desktop. Both profiles are using the same FF binary, same ViolentMonkey extension, same IITC code built by me using ./build.py dev. In my testing, I have limited it to the only userscript I have enabled is core IITC, no plugins. I've deleted all local storage and cookies in both profiles, restarted the browser, and everything else normally suggested.

In my main profile, which is a moderately tweaked configuration, everything works normally.

But, in a "test" profile that only has VM and IITC installed, I am seeing this strange issue:

I drag a dialog (e.g., About IITC), to the right of the screen so the right edge of the dialog is offscreen. When I release the mouse button, the dialog will warp to the left edge of the screen with the left edge of the dialog offscreen in what looks to be the same amount of space as it had been off to the right side, be it a single pixel or half-way offscreen. The same will happen if I resize a dialog so the right edge goes offscreen

While debugging, it seems to happen when dialog sizeFix resets the width option:

dialog.dialog('option', 'width', options.width);

If I comment out that line, or add a line like widget.off('dialogdragstop'); in a test plugin, the problem goes away (in the case of editing a plugin, only for that specific dialog, of course).

Since this only happens in my "test" profile, I'm not too worried about it. But, it is kind of annoying as I regularly move dialogs off to the right under the sidebar.

But, it would be interesting to know how two different profiles can act so differently and what I may have done wrong in my "test" profile. Any thoughts?

FF: 126.0/mozilla-deb/Linux 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03)
VM: 2.19.0
IITC: 0.38.1.20240606.025650 (well, synced to head from GH)

@McBen
Copy link
Contributor

McBen commented Jun 8, 2024

works normally.

For me the other case is "normal". When draging dialogs the screen will be scrolled and on release the dialog will be repositioned.
But it depends on where I grab the dialog titlebar.

AFAIK sizeFix was added to fix a jqueryui bug ( https://bugs.jqueryui.com/ticket/15354/ ?).

maybe a better solution is to limit dialogs to the screen boundaries.

something like here

open: function() {
var titlebar = $(this).closest('.ui-dialog').find('.ui-dialog-titlebar');
titlebar.find('.ui-dialog-title')
.addClass('ui-dialog-title-active')

add:

       open: function () {
            var ui = $(this).closest(".ui-dialog");
            if (!options.modal) {
                ui.draggable("option", "containment", '#map');
            }
            ui.resizable("option", "containment", '#map');

            var titlebar = ui.find('.ui-dialog-titlebar');
            titlebar.find(".ui-dialog-title") ......

@nexushoratio
Copy link
Contributor Author

For me the other case is "normal". When draging dialogs the screen will be scrolled and on release the dialog will be repositioned.

Oh, I have that issue as well. Well, the causing the screen the scroll a bit, but the dialogs do not reposition themselves. I figured that'd be another problem to eventually look at solving!

For me, in this case, I'm really confused as to why I have different experiences in different profiles. Though if the containment method fixes my warping issue as well, I guess it doesn't matter. But still... Well, I guess there are enough unsolved mysteries in the world; one more probably won't matter. :->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants