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

Combobox Is Not Closing When It Has Focus And :items Is Changed #4663

Closed
Flamenco opened this issue Jul 19, 2018 · 21 comments · Fixed by #5036
Closed

Combobox Is Not Closing When It Has Focus And :items Is Changed #4663

Flamenco opened this issue Jul 19, 2018 · 21 comments · Fixed by #5036
Labels
good first issue A quick-win fix that would be great for new contributors help wanted We are looking for community help T: bug Functionality that does not work as intended/expected

Comments

@Flamenco
Copy link
Contributor

Versions and Environment

Vuetify: 1.1.5
Vue: 2.5.17
Browsers: chrome
OS: osx

Steps to reproduce

select item 2
press button (with cursor still in combobox)

Expected Behavior

menu should not open, and then should close

Actual Behavior

menu opens when changing items and will not close

Reproduction Link

https://codepen.io/Flamenco/pen/pZEqGo?editors=1111

@dsseng
Copy link
Contributor

dsseng commented Jul 20, 2018

Is it platform specific issue? It works normally on Firefox.

@johnleider
Copy link
Member

This is being caused by this line:
https://github.com/vuetifyjs/vuetify/blob/dev/src/components/VAutocomplete/VAutocomplete.js#L179

This happens because the updateItems event is called and triggers the menu. Because you are clicking on the button, the intended action is to blur the input and then update the items. Because this happens simultaneously, the input thinks that it is still focused and tries to open the menu.

https://codepen.io/johnjleider/pen/KBaqdN?editors=1111

@Flamenco
Copy link
Contributor Author

@johnleider I think your solution is a workaround and the issue should be reopened and fixed in the product. It is neglegent to assume an end user will simply know that a delay is needed.in this case.

The more I use Vuetify, the more I come across these race conditions, and hours are spent dealing with them; It’s really starting to eat up my development budget.

@johnleider johnleider reopened this Jul 22, 2018
@johnleider johnleider added help wanted We are looking for community help good first issue A quick-win fix that would be great for new contributors T: bug Functionality that does not work as intended/expected labels Jul 22, 2018
@ekoeditaa
Copy link

Hi @johnleider, I would like to take this as my first issue. Can you help to tell me where to start? Thank you in advance :)

@Flamenco
Copy link
Contributor Author

A few ideas. Pick one.

  • find a way to make the select lose focus, as it should
  • do not open the dropdown if it was not already open
  • always update the menu in $nextTick, possibly checking some state flag to optimize

@johnleider johnleider changed the title Combbox Is Not Closing When It Has Focus And :items Is Changed Combobox Is Not Closing When It Has Focus And :items Is Changed Jul 25, 2018
@ekoeditaa
Copy link

I understand the idea but I'm not entirely sure about the implementation. Since the problem is caused by the methods inherited from VAutocomplete component but it shouldn't be changed because it may be used in others component. In the VCombobox component, I don't know what should I change there. Thanks for the help.

@Flamenco
Copy link
Contributor Author

Flamenco commented Jul 26, 2018

There are 2 issues here.

  • The first one is that the focus should not be in the combobox when the button is processing. The button should have the focus at that time.
  • The second is that the combo should not show the popup if it is not already opened when the content is changed.

Let's start with the first, as it will solve many other issues as well.
@johnleider Do you see major problems with running ALL button handlers in the nextTick? If this solves the problem, then maybe we add a next-tick directive to buttons, default it to false, and if there are no performance or other issues, eventually make it default behavior and remove the directive.

@ekoeditaa
Copy link

The first issue is caused by the watched items in the VAutocomplete component, specifically, the line of code @johnleider talked about. Will there be problems if we change this part? Is there any other way to fix this?

@johnkingsley
Copy link

Here is a simple test case which someone may find useful: https://codepen.io/anon/pen/djJrpx

@johnkingsley
Copy link

This change works for me:

--- a/src/components/VAutocomplete/VAutocomplete.js
+++ b/src/components/VAutocomplete/VAutocomplete.js
@@ -179,6 +179,7 @@ export default {
       // User is probably async loading
       // items, try to activate the menu
       if (
+        this.hideNoData &&
         this.isFocused &&
         !this.isMenuActive &&
         val.length

I think the comment in the code "User is probably async loading items" makes it clear there is currently no way in the API to know definitely if the user is using async loading. By adding a check for hideNoData I think it makes a better guess.

@Kasheftin
Copy link

I don't think that fixing focus (removing nextTick from button handlers etc) will fix this issue.
I personally met it in the following scenario:

  • autocomplete results loaded through ajax accordingly to the input-search value;
  • the initial options should be shown even if input-search is empty;
  • return-object option isset;
    This case selecting a value from a list will update input-search to empty, the last will trigger an initial options list to show, items will be replaced and the new list will be mistakenly shown. The autocomplete is still focused, the value itself triggers updateItems event.

The other scenario also causes this issue:

  • assume we have to paste some external current value to the autocomplete;
  • autocomplete items loaded through ajax, and the current external value is not necessary present in the items list. The initial items array is usually empty;
  • But we have to show this value somehow, that's why we inject it into the items list if it's not there;
  • Also assume that the other search results go from the store, we have to prepare them somehow without mutations;
  • Then we use the code like this:
computed: {
  items () {
    const items = [...this.searchResults]
    applySomePrepareMutation(items)
    if (this.value && items.findIndex(rw => rw.id === this.value.id) !== -1) {
      items.unshift(this.value)
    }
    return items
  }
}

This case selecting a value will trigger computed items to update. The last will not actually change, but from js point of view the new items will be a different array, and this will trigger updateItems event as well.

@johnleider
Copy link
Member

The scenario you are describing sounds like autocomplete, not combobox @Kasheftin .

@dkichler
Copy link
Contributor

I believe this all comes down to the assumption that the update is from an async call, and that the menu should always be invoked in that case - as pointed out by @johnleider. I proposed in #4878 a simple prop to control this behaviour, a solution similar to that suggested by @johnkingsley.

Given the number of reports of this behaviour as a defect, perhaps it should even default to off, and the prop would need to be used to toggle it on, in cases where it is preferred.

@johnleider
Copy link
Member

I completely agree and made that comment on your PR. Let's get it in next release!

@KaelWD
Copy link
Member

KaelWD commented Aug 31, 2018

The original commit d4732ec and unit test referred to hide-no-data, but the actual implementation doesn't use it. I think @johnkingsley's suggestion is probably the simplest way to solve this, maybe with the addition of !(oldVal && oldVal.length).

@KaelWD
Copy link
Member

KaelWD commented Aug 31, 2018

Actually that watcher can probably be removed entirely, there's also a computed property that handles this much more elegantly:

menuCanShow () {
if (!this.isFocused) return false
return (this.displayedItemsCount > 0) || !this.hideNoData
},

@dkichler
Copy link
Contributor

The hide-no-data prop was introduced as a way of controlling visibility of the menu when no results are available (as a result of filtering/querying by search) 20228a5. Using it to also control whether the menu should open upon update I think is confusing because it doesn't allow independent control over distinct behaviours. There may be an argument for combining the two behaviours into a single 'feature', controlled by one prop, but I think that path involves making more assumptions about how such a feature should work/will be used.

If the distinct feature of opening the menu upon external items update is to be maintained, I think the watcher must also stay, and that it's behaviour should be controlled by a new prop as proposed in my PR.

Both the hide-no-data and open-on-items-changed props cater to those doing server side querying/filtering, which I think warrant fine control over configuration. The hide-no-data prop alone does not cover the intent behind this original ticket #2613, but using hide-no-data, open-on-items-changed and no-data-text together, a dev can craft whatever custom server-side managed behaviour they wish.

I understand the desire to avoid new props as generally more props equals more complexity, but I believe the tradeoff is warranted in this case since these props are really intended for cases where a little complexity is to be expected (ie, server-side querying/filtering), and flexibility appreciated.

@KaelWD
Copy link
Member

KaelWD commented Sep 1, 2018

The items watcher is there because hide-no-data would prevent the menu from opening, instead of just hiding it when there was nothing to display. I don't see what use open-on-items-changed really has apart from that.

dkichler pushed a commit to dkichler/vuetify that referenced this issue Sep 4, 2018
dkichler pushed a commit to dkichler/vuetify that referenced this issue Sep 4, 2018
dkichler pushed a commit to dkichler/vuetify that referenced this issue Sep 4, 2018
@dkichler
Copy link
Contributor

dkichler commented Sep 4, 2018

As far as I can tell, hide-no-data's only function is to control visibility of the menu when no results exist, which seems like a relevant feature outside the context of an async call. I say this with only the code to go on.

The items watcher is there because hide-no-data would prevent the menu from opening, instead of just hiding it when there was nothing to display.

I was under the impression that the items watcher is there to open the menu in cases where an async call has completed, the menu is closed, and the app wishes to draw attention to the results. Demonstrated by this codepen, type 'm' into autocomplete, then press esc to close the menu. When the simulated call finishes, the menu is opened. Feels like legitimate feature whether or not the user also wants to hide the menu when no results exist (via hide-no-data). This does not apply for non-async cases though, and leads to unwanted menu invocations. Hence the proposal for the open-on-items-change prop to enable this specifically for the async use-case rather than having it be default.

If you're advocating for coupling the above behaviour to hide-no-data as well, I see some risk in that approach of more reports of unexpected behaviour. However, I am willing to draft that solution if that's what it takes to change the existing default (the main motivator behind this ticket).

@KaelWD
Copy link
Member

KaelWD commented Sep 5, 2018

You might be right, this is why john said we should get some use cases together for #4879.

Demonstrated by this codepen

'Off' doesn't seem like it should be used there, typically it'd be a loading bar while waiting for the response instead of jumping straight to saying there's nothing there.
Honestly there's so many ways this could be used that maybe it is better to be explicit. I'm not sure if open-on-items-changed is the right way to go with that though, maybe it should be #5036 plus the ability to control the menu manually so you can decide for yourself if it should be open or not. (#2443)

@dkichler
Copy link
Contributor

dkichler commented Sep 5, 2018

'Off' doesn't seem like it should be used there

Indeed, the on/off selector was only there to demonstrate that the opening of the menu is independent (and I think should remain so) of hide-no-data.

maybe it should be #5036 plus the ability to control the menu manually so you can decide for yourself

This codepen demonstrates the async use-case that would rely on the current default behaviour of opening upon items changed, as well as making use of hide-no-data and no-data-text to customize user feedback. It also demonstrates a case that would become either untenable or overly confusing if hide-no-data were also responsible for controlling the behaviour of opening the menu. Finally, it also demonstrates how explicit opening of the menu is already possible via the component API.

Some solution options:

  1. Drop the items watcher all together, put the burden on the developer if they wish to build a custom async solution that opens the menu when a call has finished (this would give the greatest flexibility since the client would determine the conditions entirely, rather than relying on the conditions assumed by the component)
  2. Keep items watcher, but also gate it with the hide-no-data prop, as proposed in V-Autocomplete: hide-no-data also controls opening menu upon item update #5036
  3. Introduce open-on-items-changed to gate the items watcher and allow developers to turn 'on' the assumptions made by the component about when the menu should item, as proposed in Feat/v autocomplete issue4663 - open on items change #4879

My order of preference would be:

3 - A good balance: provides optional assumed behaviour (open the menu when items change, is not already open, has focus, and there are some items in the new list). Assumed behaviour must be enabled explicitly, component API is still available for more complex cases.
1 - The most flexible, but puts a bit more onus on the developer. Existing behaviour is lost and must be reimplemented as custom code via the component API
2 - Doubles down on assumptions and additionally couples hide-no-data to the behaviour of opening the menu. Menu opening behaviour is no longer enabled by default, but when it is enabled via hide-no-data, the developer must live with the assumptions in place.

lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 3, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6
lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 10, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6

* fix(v-radio): remove bottom margin

if only or last child, do not add margin

fixes vuetifyjs#5162

* fix(v-autocomplete): allow setSearch for numeric 0

fixes vuetifyjs#5110

* [v-tab] Fix anchor hash routing (vuetifyjs#5124)

* fix(v-messages): change assigned key

fixes vuetifyjs#4880

* fix(v-select): remove change event for external changes

fixes vuetifyjs#5006

* fix(v-text-field): change mouseup focus to conditional

should only focus the input if the originating mousedown was on the element

fixes vuetifyjs#5018

* fix(VLinearProgress): invalid class applied when using css color

* fix(VEditDialog): apply theme classes to content (vuetifyjs#5152)

* fix(VEditDialog): apply theme classes to content

fixes vuetifyjs#5127

* test: update snapshots

* [release] 1.2.7

* Update snapshots after merge.
lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 10, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6

* fix(v-radio): remove bottom margin

if only or last child, do not add margin

fixes vuetifyjs#5162

* fix(v-autocomplete): allow setSearch for numeric 0

fixes vuetifyjs#5110

* [v-tab] Fix anchor hash routing (vuetifyjs#5124)

* fix(v-messages): change assigned key

fixes vuetifyjs#4880

* fix(v-select): remove change event for external changes

fixes vuetifyjs#5006

* fix(v-text-field): change mouseup focus to conditional

should only focus the input if the originating mousedown was on the element

fixes vuetifyjs#5018

* fix(VLinearProgress): invalid class applied when using css color

* fix(VEditDialog): apply theme classes to content (vuetifyjs#5152)

* fix(VEditDialog): apply theme classes to content

fixes vuetifyjs#5127

* test: update snapshots

* [release] 1.2.7

* fix(v-ripple): decrease click target size on selection control ripple (vuetifyjs#5250)

hopefully removes instances where click targets overlap between adjacent inputs

closes vuetifyjs#2661

* fix(v-stepper): add registrable mixin

fixes vuetifyjs#3330

* fix(v-select): change isDisabled conditional

should use regular text color when readonly

fixes vuetifyjs#5051

* fix(v-dialog): always remove scrollbar when fullscreen

fixes vuetifyjs#3101

* fix(v-ripple): only modify position if current one is static (vuetifyjs#5249)

* fix(v-ripple): only modify position if current one is static

solves problems when using for example position sticky

closes vuetifyjs#2573

* chore(ripple): ignore eslint for max-statements

* [release] 1.2.8
@lock lock bot locked as resolved and limited conversation to collaborators Sep 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
good first issue A quick-win fix that would be great for new contributors help wanted We are looking for community help T: bug Functionality that does not work as intended/expected
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants