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

Dialog may cause flicker due to repositioning #5387

Closed
ASK83 opened this issue Mar 20, 2018 · 5 comments
Closed

Dialog may cause flicker due to repositioning #5387

ASK83 opened this issue Mar 20, 2018 · 5 comments
Assignees
Labels
Type: Bug Issue contains a bug related to a specific component. Something about the component is not working
Milestone

Comments

@ASK83
Copy link

ASK83 commented Mar 20, 2018

I'm submitting a ... (check one with "x")

[X] bug report => Search github for a similar issue or PR before submitting
[ ] feature request => Please check if request is not on the roadmap already https://github.com/primefaces/primeng/wiki/Roadmap
[ ] support request => Please do not submit support request here, instead see http://forum.primefaces.org/viewforum.php?f=35

It is difficult to recreate the issue but I made this animated gif that shows the behavior.

Current behavior
dialog2

As the gif shows the left property is being set multiple times which makes the dialog to look like it has heart beat. the following is what happens in the dialog element that makes this behavior.
dialog-element

Expected behavior
The dialog should stay still after the first centering.

Minimal reproduction of the problem with instructions
This is hard, because this behavior does not happen all the times, but when it does it is annoying. I tracked down and the centering appears to be coming from ngAfterViewChecked which in itself calls the positionOverlay.
` positionOverlay() {
let viewport = this.domHandler.getViewport();
if(this.domHandler.getOuterHeight(this.containerViewChild.nativeElement) > viewport.height) {
this.contentViewChild.nativeElement.style.height = (viewport.height * .75) + 'px';
}

    if(this.positionLeft >= 0 && this.positionTop >= 0) {
        this.containerViewChild.nativeElement.style.left = this.positionLeft + 'px';
        this.containerViewChild.nativeElement.style.top = this.positionTop + 'px';
    } 
    else if (this.positionTop >= 0) {
      this.center();
      this.containerViewChild.nativeElement.style.top = this.positionTop + 'px';
    }
    else{
        this.center();
    }
}`

But the problem comes when the final else is being called repeatedly. This makes the dialog to appear as shown above, and when you click on the dialog this behavior goes away.

  • Angular version: 5.X
    5.2.8

  • PrimeNG version: 5.X
    5.2.2

  • Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
    All

@ASK83 ASK83 changed the title p-dialog center call p-dialog center() call being called repeatedly Mar 20, 2018
@LoganFievez
Copy link

Hi,
I had a similar issue couple of weeks and I figure that in the document, it's mentioned that autoAlign is false by default. But, when I check the code, I noticed that autoAlign is true by default so try to set it to false like this:

<p-dialog [autoAlign]="false"></p-dialog>

@tleveque23
Copy link

Thanks for the workaround!
But it still need to be fixed....

kutoslaw added a commit to kutoslaw/primeng that referenced this issue Apr 10, 2018
In some cases, when after calculating x or y is not an integer value, it causes the call to be looped.
Referenced with primefaces#5387
@kyleabens
Copy link

The above commit works like a charm!

@Elanor-L
Copy link

Same trouble here. Thanks for the commit. Any news on when it'll be fixed ?

@cagataycivici cagataycivici self-assigned this Jun 8, 2018
@cagataycivici cagataycivici added the Type: Bug Issue contains a bug related to a specific component. Something about the component is not working label Jun 8, 2018
@cagataycivici cagataycivici added this to the 6.0.0-rc.1 milestone Jun 8, 2018
@cagataycivici
Copy link
Member

Will check for next week's 6.0.0-RC1. Thanks for the tip guys.

@cagataycivici cagataycivici changed the title p-dialog center() call being called repeatedly p-dialog may cause flicker due to repositioning Jun 12, 2018
@cagataycivici cagataycivici changed the title p-dialog may cause flicker due to repositioning ialog may cause flicker due to repositioning Jun 12, 2018
@cagataycivici cagataycivici changed the title ialog may cause flicker due to repositioning Dialog may cause flicker due to repositioning Jun 12, 2018
ldauvilaire added a commit to ldauvilaire/primeng that referenced this issue Jun 16, 2018
* Fixed primefaces#5577

* Fixed primefaces#5168

* Fixed  primefaces#5270

* Fixed primefaces#5184

* Fixed primefaces#5200

* Fixed primefaces#5274

* Fixed invalid closing tags in table docs example

* Fixed primefaces#5250

* Fixed primefaces#5121

* Refactor on ScrollPanel demo

Fixed primefaces#5532

* Fixed primefaces#5124

* Fixed primefaces#5196

* Fixed primefaces#5207

* Fixed primefaces#5174

* Fixed primefaces#5282

* Fixed primefaces#5211

* Docs for multiselect change detection

* Fixed primefaces#5218

* Fixed primefaces#5169

* Fixed primefaces#5167

* Fixed primefaces#5144

* Fixed #primefaces#5158

* Fixed primefaces#5148

* Fixed primefaces#5123

* set class ui-state-disabled when component is disabled

* Fixed primefaces#5131

* [Fix primefaces#5598] Disable component-class-suffix rule.

As Component suffix is never used in component classes in the whole project,
we expect this rule disabled in tslint.

* [Fix primefaces#5598] ignore no-inferrable-types rule on class properties.

As all class properties are typed, even the obvious ones
(e.g: inline: boolean = false;)
And those can be considered as documentation for an open-source project,
Then we should ignore this rule on class components.

* fix trailing comma

* Fixed primefaces#5159

* Replaced plunkr with stackblitz

* Fixed primefaces#5102

* Fixed primefaces#5193

* Fixed primefaces#5469

* Fixed primefaces#5632

* Refactor primefaces#5549

* Fixed primefaces#5633

* Version update

* Fix demo

* Fixed primefaces#5634

* Fixed primefaces#5503

* Fixed demo source display

* Add doc for hideDelay

* Use setTimeout within runOutsideAngular

* Fixed primefaces#5499

* Fixed primefaces#5637

* Set version

* AOT fixes

* New iteration

* Version at footer

* Fixed primefaces#5656

* Demo fix

* Fix table component only applying the last filter before timeout (primefaces#5660)

* Fixed primefaces#5664

* Update text

* Update text

* Delete ng-conf2018 section

* Fixed primefaces#5672

* Fixed primefaces#5673

* Add ui-multiselect-open class to ui-multiselect and typo fix for multiselect documentation

* Fixed 5687

* Fixed primefaces#5693

* Fixed primefaces#5697

* Fixed primefaces#5699

* Fixed primefaces#5702

* Add style classes for icons

* Set version

* Fix AOT issue

* New version

* Fixed quote

* Add Harmony

* Doc update

* Fixed primefaces#5731

* Fixed primefaces#5705

* Names for icons

* Fixed primefaces#4409

* Add designer to homepage

* Firefox button fix

* Fixed primefaces#5664

* Fixed primefaces#5729

* Fixed primefaces#5744

* Set version

* Change the position of }

* Fixed #primefaces#5758

* Polyfill update

* Demo cosmetics to add margins since Angular 6 has preserveWhiteSpace as false by default now

* Ignore angular.json

* Set version

* New dev iteration

* Version

* Change logo

* Change favicon

* Change logo

* Fix URL

* Syntax Error

Interface syntax Error double curly braces {{ }}

* Fixed primefaces#5772

* Initiated new TreeTable

* Placeholders for new TreeTable demos

* Color for toggler

* update progress spinner link

* Pagination and Sections for new TreeTable

* Single and Multi sort for new TreeTable

* Update state on node toggle

* Lazy loading TreeTable

* Refactor sort demo

* Loading icon for Lazy TreeTable

* Lazy children loading demo for new TreeTable

* Column grouping for new TreeTable

* Demo code refactor

* Added colgroup template support

* Responsive demo for new TreeTable

* Initiated scrollable for new TreeTable

* Remove comma

* Demo update for colgroup

* More data for TreeTable demo

* Implemented scrolling for new TreeTable

* Remove typo

* Row and Cell based styling for new TreeTable

* Cosmetics

* Implemented resizable columns for new TreeTable

* Fixed primefaces#5804

* Column reordering for new TreeTable

* Remove "new" badges from the older components

* Cosmetics

* Toggleable columns for new TreeTable

* Selection for new TreeTable

* Source code for selection demo

* Name refactor for TreeTable directives

* ContextMenu integration for new TreeTable

* Implemented checkbox selection for the new TreeTable

* Doc update

* Header checkbox support for new TreeTable to toggle all nodes

* Incell editing for new TreeTable

* Started documentation for new TreeTable

* Documentation fixes

* Documentation update for TreeTable

* Documentation for new TreeTable

* Fixed typos

* Fixed primefaces#5446

* Fixed primefaces#5706

* Remove unused section

* Fixed primefaces#5657

* Fixed primefaces#5618

* Cosmetics for Demo

* Set version

* New iteration

* Initiated PrimeIcons for PrimeNG

* Fixed primefaces#3746

* Use PrimeIcons for the remaining components

* Updated demos to use PrimeIcons

* Cosmetic changes due to new PrimeIcons

* Bigger loader icon

* Doc update

* Issue template update

* Fixed primefaces#5853

* Fixed primefaces#5854

* Fixed primefaces#5829

* Chart doc typos. Fix for set sizing in responsive mode.

* Made width also work in responsive mode, then forgot to update docs.

* Fixes the turbo table scrollbar overlapping the paginator.

* accessibility(accordion): correctly using of role attribute

* ChartJS generateLegend need to return the HTML string.

* Documentation for PrimeIcons

* Demo fixes

* Fixed primefaces#5751

* Fixed icons

* Convert NodeList to array

* Fixed primefaces#5847

* Add ecuador

* Update version at footer

* Doc update

* Set version

* New dev version

* Fixed primefaces#5867

* Fixed primefaces#5211

* Readme update

* Showcase split button fix

* Fixed primefaces#5882

* PrimeIcons fix

* Remove deprecated components from demo menu

* PrimeIcons fix

* Remove unused property

* Fixed primefaces#5387

* Fixed primefaces#5368

* Fixed primefaces#5359

* Fixed primefaces#5329

* Fixed icon name

* Fixed primefaces#5891

* Fixed primefaces#4124 - Maximizable Dialog

* Block scroll

* Update to new PrimeIcons

* Cosmetics

* Fixed primefaces#5893

* Doc update

* Fixed primefaces#5348

* Refactor

* Animation for dialog maximize

* Demo update

* Version at footer

* Remove deprecated lazy prop from tabview

* Set version

* New version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Issue contains a bug related to a specific component. Something about the component is not working
Projects
None yet
Development

No branches or pull requests

6 participants